【问题标题】:Conditional Add To Cart Button On Woocommerce Product ArchiveWoocommerce产品档案上的条件添加到购物车按钮
【发布时间】:2019-10-21 13:33:55
【问题描述】:

我正在尝试根据条件替换默认的 woocommerce 产品存档添加到购物车按钮。

例如

产品 A - 复选框激活 --> 显示查找经销商按钮 产品 B - 复选框无效 --> 显示默认添加到购物车按钮

如果产品有一个激活的自定义复选框,我已经成功地编写了代码来添加复选框和替换按钮的条件。产品 A 的按钮可以正常工作,并且可以按照商店档案中的预期使用。

但是,如果对于没有激活此复选框的产品,我不确定如何保留 woocommerce 默认添加到购物车按钮。我认为添加动作会起作用,但是我很难过。任何帮助将不胜感激。提前谢谢你。

add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_default_button' );
    function replace_default_button(){
    global $product;

   if ($product->get_meta('_checkbox_active') === 'yes' ){
      return '<button>Finda Dealer</button>';}

    else {add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );}

【问题讨论】:

    标签: php wordpress woocommerce product hook-woocommerce


    【解决方案1】:

    您只是忘记了挂钩函数变量参数。请尝试以下方法:

    add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_default_button', 10, 2 );
    function replace_default_button( $button, $product ){
        if ( $product->get_meta('_checkbox_active') === 'yes' ){
            $button = '<a href="#" class="button alt">' . __( "Find a dealer", "woocommerce" ) . '</a>';
        }
        return $button;
    }
    

    代码在您的活动子主题(或活动主题)的functions.php 文件中。它应该可以工作。

    【讨论】:

    • 效果很好。我实际上是在尝试添加带有一些值的 php 表单,并将选中产品上的按钮替换为提交按钮。我忽略了这一点,以为我可以替换代码而不是 $button = '&lt;a href="#" class="button alt"&gt;' . __( "Find a dealer", "woocommerce" ) . '&lt;/a&gt;'; 虽然这确实有效,但它仍然显示“添加到购物车”按钮和“查找经销商”按钮。我设法通过保留删除类来使用一些肮脏的技巧来修复它。会有更好的方法来做到这一点吗?我已经用详细信息更新了主要内容。
    • 我的错。出于某种原因,我将发布另一个问题,我认为我不允许发布与同一线程有关的新问题。感谢您一如既往的帮助!
    猜你喜欢
    • 2020-09-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2014-11-21
    • 2016-04-05
    • 2015-01-15
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多