在页面上显示 Woocommerce 通知

2023-12-06

我创建了一个功能来显示一些带有短代码的产品,但我遇到的问题是错误消息没有显示在该页面上。例如,如果某些字段是必需的,那么它仅显示在购物车/结账页面上。

这是我的一些代码:

while ( $query->have_posts() ) : $query->the_post();
global $product;
?>
<div style="border-bottom:thin dashed black;margin-bottom:15px;">
<h2><?php the_title(); ?>  <span><?php echo $product->get_price_html();?></span></h2>
<p><?php the_excerpt();?></p>
<?php global $product;
if( $product->is_type( 'simple' ) ){
woocommerce_simple_add_to_cart();
}

我需要添加什么才能在使用短代码的页面上显示错误消息?


你需要使用专用的wc_print_notices()函数,显示 Woocommerce 通知。为此目的,此函数在 woocommerce 模板中被挂钩或使用。

要使 WooCommerce 通知在您的短代码页面中激活,您需要在您的短代码中添加以下内容wc_print_notices()功能。

我在下面复制了与您类似的简码(用于测试目的)woocommerce 通知的打印位置:

if( !function_exists('custom_my_products') ) {
    function custom_my_products( $atts ) {
        // Shortcode Attributes
        $atts = shortcode_atts( array( 'ppp' => '12', ), $atts, 'my_products' );

        ob_start();
        
        // HERE we print the notices
        wc_print_notices();

        $query = new WP_Query( array(
            'post_type'      => 'product',
            'posts_per_page' => $atts['ppp'],
        ) );

        if ( $query->have_posts() ) :
            while ( $query->have_posts() ) :
                $query->the_post();
                global $product;
            ?>
                <div style="border-bottom:thin dashed black;margin-bottom:15px;">
                <h2><?php the_title(); ?>  <span><?php echo $product->get_price_html();?></span></h2>
                <p><?php the_excerpt();?></p>
            <?php
                if( $product->is_type( 'simple' ) )
                    woocommerce_simple_add_to_cart();

            endwhile;
        endif;
        woocommerce_reset_loop();
        wp_reset_postdata();

        return '<div class="my-products">' . ob_get_clean() . '</div>';
    }
    add_shortcode( 'my_products', 'custom_my_products' );
}

代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中。

这已经过测试并且适用于 WooCommerce 3+

Notes:

  • 在您的代码中您使用了 2 次global $product;
  • 请记住,在短代码中,您永远不会回显或打印任何内容,但您return一些输出...
  • 不要忘记在最后重置循环和查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在页面上显示 Woocommerce 通知 的相关文章

随机推荐

  • 如何将 JSON 数据加载到 Highchart?

    my Json看起来像这样 1332879360000 0 300 0 1332797760000 0 353 0 1332799320000 0 358 0 1332879780000 0 302 0 1332800160000 0 35
  • 使用 Mockito 通过反射来模拟方法

    我们使用 Mock Factory 为我们的开发人员提供关于模拟功能的最大可能舒适度 同时减少对 mockito 本身的了解 为此 我们的 Mock Factory 提供了一种方法来创建模拟 给定类名 方法名 通过正则表达式 和给定的返回值
  • 如何制作一堆可检测手势的自定义绘制形状

    我设法用以下方法制作了这 3 个奇怪的形状CustomPainter the 滑动按钮形状 平移按钮形状 and 倾斜按钮形状分别 我想让它们可检测到 所以我添加了GestureDetector但它不能正常工作 这就是我堆叠自定义绘制形状的
  • 如何使用 Apache POI 提取 docx(Word 2007 以上)

    你好 我正在使用 Apache POI 3 6 我已经创建了一些代码 XWPFDocument doc new XWPFDocument new FileInputStream file wordxExtractor new XWPFWor
  • 为什么 Google 地图在我的 Android 应用程序中显示空白屏幕?

    我的 Android 应用程序中有 Google 地图 我通过选择新的 Google 地图活动并将密钥粘贴到 Android Studio 中来添加它 它在我的 Android 手机 Lenovo K5 Note 中运行良好 但当我将项目复
  • 如何将分号附加到 ArrayList 中的每个元素[重复]

    这个问题在这里已经有答案了 我目前正在尝试在 ArrayList 中每个元素的末尾附加一个分号 代码 ArrayList
  • 如何在flutter中执行VoidCallback

    我正在尝试测试VoidCallback所以我创建了主文件 它有一个从小部件中的平面按钮调用的函数 该函数位于一个单独的文件中 但不起作用 主程序 dart import package flutter material dart impor
  • 为应用程序配置 SSL Heroku HTTPS

    您好 我目前正在阅读下面的教程 将 ssl 添加到我的 heroku 应用程序中 https gist github com shripadk 552554 所以今天 我买了一个域名 将 cname 设置为指向我的 heroku 应用程序
  • 如何使用 Jakarta POI 读取 ms word 文件的内容

    我已包含 jakarta poi 1 5 1 final 20020615 jar 文件以从 ms word 读取内容 我无法做到这一点 任何人都可以帮助我吗 Here is 快速指南
  • 在 R Shiny 中触发反应流的键盘快捷键?

    是否有可能 比如说 F7 or Q在 Shiny 应用程序 在 Windows 中 中触发反应流 这个问题提供了用于通过键盘输入交替选项卡的代码 但我对启动反应流感兴趣 例如 每次用户按下时都会 触发 按钮Q在键盘中 这是一个基于的示例这个
  • 无法抑制弃用警告

    在我的 Django 应用程序中 当我导入第三方库时 我在控制台中收到此警告 imp 模块已被弃用 取而代之的是 importlib 有关其他用途 请参阅模块的文档 但是 如果我在 Python shell 中进行导入 那么一切都可以 我想
  • 如何制作一个“真正透明”的光标窗口,最好是在纯 QML 上? (Qt 5.7)

    真正的透明 解释 图片 76kb 在那张图片上应用窗口有一个视觉上透明的层 但实际上光标并没有走到后面的窗口应用窗口 在本例中为 QT Creator 如果添加 取消注释 Qt WindowTransparentForInput 标志 则可
  • 如何使用javascript访问gridview单元格值

    我有一个 javascript 函数 我正在尝试验证 gridview 的输入 我的问题是我无法获取单元格的值 这是我所拥有的 function fcnCheck var grid document getElementById var c
  • 如何在 Java 中调用 WSDL URL 上的 Web 服务?

    我需要在我正在构建的 java Web 应用程序中调用一些 Web 服务方法 例如 每次用户注册时 我想致电newUser通过 Java 处理 WSDL url 的方法 我需要通过请求传递一些参数 是否有任何内置的 Java 类或任何公开可
  • 合并字典的字典和总和值

    我正在寻找一种将多个字典相互合并的方法 其中也包含嵌套字典 嵌套字典的数量不是静态的而是动态的 最后 最终字典应包含所有字典的字典及其值的总和 COUNTRY1 a X 10 Y 18 Z 17 b AA AAx 45 AAy 22 BB
  • 通过相机进行形状识别的 iPhone 库

    我希望这属于 编程问题 类别 我在谷歌上搜索 计算机视觉 这个主题 并阅读了这里关于该主题的每一篇文章 感到头晕目眩 但我变得更加困惑 而不是开明 我在一张纸上打印了 6 个抽象形状 我想让 iPhone 上的摄像头识别这些形状 从不同角度
  • GCE 实例在没有详细信息或澄清的情况下终止

    昨晚我们收到了一个奇怪的错误事件 其中一个 GCE VM 实例因不明原因被系统终止 有什么方法可以确定正在运行的实例终止的原因吗 来自 GCE 服务的 REST 响应的部分 kind compute operation operationT
  • Google Apps 脚本批量执行时间意外

    以下代码会导致空白表 可能是由于 clear 最后执行 即使它列在最前面 const ss SpreadsheetApp getActiveSpreadsheet var contractSheet ss getSheetByName sh
  • IISExpress 从远程计算机返回 503 错误

    我正在尝试使用本地网络上的其他一些计算机 设备来测试在本地 IISExpress 实例中运行的网站 我运行的是Win7专业版 当我第一次尝试从本地网段上的另一台计算机浏览到我的计算机时 收到 400 错误 主机名无效 据我了解 我需要使用提
  • 在页面上显示 Woocommerce 通知

    我创建了一个功能来显示一些带有短代码的产品 但我遇到的问题是错误消息没有显示在该页面上 例如 如果某些字段是必需的 那么它仅显示在购物车 结账页面上 这是我的一些代码 while query gt have posts query gt t