我有一个 WooCommerce 网上商店的自定义 PHP 代码,但我希望它仅适用于 3 个特定产品或整个产品类别。有人可以帮我解决这个问题,以便该代码仅适用于“Pick & Mix”类别或产品 ID 707、195 和 193 吗?
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_after_single_product', 'woocommerce_template_single_add_to_cart', 1 );
remove_action( 'woocommerce_single_product_summary', 'wc_usp_table', 33 );
add_action( 'woocommerce_after_single_product', 'wc_usp_table', 33 );
我尝试在网上搜索但找不到答案。
您可以使用以下内容来定位特定的产品类别
add_action( 'woocommerce_single_product_summary', 'woocommerce_single_product_summary_callback', 1 );
function woocommerce_single_product_summary_callback() {
global $product;
if ( has_term( 'Pick & Mix', 'product_cat', $product->get_id() ) ) {
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_after_single_product', 'woocommerce_template_single_add_to_cart', 1 );
remove_action( 'woocommerce_single_product_summary', 'wc_usp_table', 33 );
add_action( 'woocommerce_after_single_product', 'wc_usp_table', 33 );
}
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并工作。
要定位特定产品 ID,请替换:
if ( has_term( 'Pick & Mix', 'product_cat', $product->get_id() ) ) {
与:
if ( in_array( $product->get_id(), array( 707, 195, 193 ) ) ) {
它也会起作用。