如何对 WooCommerce 中的特定产品 ID 或类别使用 add_action remove_action?

问题描述 投票:0回答:1

我有一个 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 );

我尝试在网上搜索但找不到答案。

php wordpress woocommerce product hook-woocommerce
1个回答
0
投票

您可以使用以下内容来定位特定产品类别:

add_action( 'woocommerce_single_product_summary', 'woocommerce_single_product_summary_callback', 1 );
function woocommerce_single_product_summary_callback() {
    global $product;

    if ( has_term( array('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 ) ) ) {

它也会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.