【发布时间】:2021-08-05 05:36:58
【问题描述】:
我正在研究一种解决方案,我在每个 WooCommerce 产品上都有一个 ACF。当自定义字段不是NULL 时,它将在之前的添加到购物车按钮下方添加一个自定义锚标记。这工作正常,但我不能让它工作,所以当上述步骤完成后,添加到购物车按钮将被钩子woocommerce_is_purchasable 删除。总体而言,这可能是一个坏主意,因为我已经看到,如果我使用 woocommerce_is_purshable,并将其设置为 false 在 woocommerce_after_add_to_cart_button 挂钩之外,它会同时删除 添加到购物车 按钮和我的定制订购目录按钮。
add_filter('woocommerce_after_add_to_cart_button', function () {
$order_a_catalog_url = get_field('order_a_catalog_url', get_the_ID());
$order_a_catalog_name = __('Order A Catalog', 'wp');
if ($order_a_catalog_url != null) {
echo '<a class="button" href="'.$order_a_catalog_url.'">'.$order_a_catalog_name.'</a>';
add_filter( 'woocommerce_is_purchasable', '__return_false' );
}
}, 100);
回答后编辑更新的代码。
add_action('woocommerce_simple_add_to_cart', function () {
global $product;
$order_a_catalog_url = get_field('order_a_catalog_url', $product->get_id());
$order_a_catalog_name = __('Order A Catalog', 'wp');
if ($order_a_catalog_url != null) {
echo '<a class="button" href="'.$order_a_catalog_url.'">'.$order_a_catalog_name.'</a>';
remove_action('woocommerce_'.$product->get_type().'_add_to_cart', 'woocommerce_'.$product->get_type().'_add_to_cart', 30);
}
});
【问题讨论】:
标签: wordpress woocommerce hook-woocommerce