隐藏添加到购物车按钮,并在Woocommerce中添加自定义内容

时间:2018-02-13 06:24:42

标签: php wordpress woocommerce product hook-woocommerce

我已经添加了一个'立即自定义'按钮和几个下拉菜单后添加到购物车'按钮使用Binding

但是现在当我试图隐藏“添加到购物车”时按钮(我必须针对特定情况,我的网站需要)使用woocommerce_after_add_to_cart_button,'立即自定义'按钮和下拉列表也被隐藏。有没有正确的顺序/顺序呢?

过滤以添加自定义按钮和下拉列表:

woocommerce_is_purchasable

过滤以删除添加到购物车按钮:

add_action('woocommerce_after_add_to_cart_button', array($this, 'pn_get_calc_and_customize_btn'));

2 个答案:

答案 0 :(得分:2)

由于添加到购物车的模板显示条件为:

if ( ! $product->is_purchasable() ) {
    return;
}

2种方式:

1)改为使用woocommerce_single_product_summary30 之间的优先级40挂钩:

add_action('woocommerce_single_product_summary', array($this, 'pn_get_calc_and_customize_btn'), 35 );

然后您的函数输出代码应嵌入自定义<form>中,您需要添加更多代码以将数据保存在购物车或其他地方......

2)要删除购物车按钮,请使用woocommerce_product_is_in_stock过滤器挂钩代替woocommerce_is_purchasable,这样您就必须更改您的挂钩功能代码......

add_filter('woocommerce_product_is_in_stock', array($this, 'pn_hide_add_to_cart_button'), 10, 2);

答案 1 :(得分:1)

我在这里有两个建议:

第一个是尝试将优先级添加到add_action()。根据文档,数字越小,执行越早。我会尝试为add_action()添加更高的优先级,并尝试强制在您的过滤器后执行woocommerce_after_add_to_cart_button。但是,我不知道删除按钮是否也会禁止过滤器(可能是)。

我可能有的另一个建议是覆盖页面的默认模板(我不知道你是否正在编辑商店页面或single_product页面)并且有一些if{}else{}登录在那里根据情况显示隐藏按钮。

我不知道这些解决方案中的任何一个对你有什么好处,但这只是我的难点,我将如何处理它。

希望它能以任何方式帮助