根据产品标签更改 Woocommerce 单一产品模板订单

Change Woocommerce single product templates order based on product tag

我有两个模板,一个用于全景和多面板照片,另一个用于普通照片。

我正在尝试编写检查产品标签的条件语句,以便 select 显示相关模板。

  1. 全景照片有产品标签'panorama'或'multi-panel'。

  2. 如果 'panorama' 或 'multi-panel' 标签为真 >> 在 Panorama 产品页面上执行一些 remove_action 和 add_action 功能...

...否则对普通产品页面不做任何操作...

这是我一直在乱涂的,一点影响都没有!!

function robhemphill_panorama_layout () {

    if ( has_tag( array( 'panorama', 'multi-panel'))) {     

        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
        add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_single_title', 5 );
        add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_single_excerpt', 10 );

    } else {    

         // Do nothing

    }

}   

add_action( 'woocommerce_single_product_summary', 'robhemphill_panorama_layout' );

任何想法或想法都会很棒,在网上找不到任何东西!

当您定位 Woocommerce 产品标签(但不是 WordPress 标签)时,试试这个:

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

    if ( has_term( array( 'panorama', 'multi-panel' ), 'product_tag', $product->get_id() ) ) {

        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
        add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_single_title', 5 );
        add_action( 'woocommerce_after_single_product_summary', 'woocommerce_template_single_excerpt', 10 );

    }
}

代码进入您活跃的子主题(或主题)的 function.php 文件。

已测试并有效。