使用复选框从Woocomerce单个产品页面内部激活插件

时间:2019-02-07 15:27:49

标签: wordpress woocommerce

我正在寻找一种从woocommerce单一产品页面激活插件的方法,该插件显示要交付的倒计时,但与所有产品都不相关,我想在单个产品中使用复选框打开和每个产品页面的

该插件目前正在使用theme mod中的add操作在所有产品上激活,从而能够真正更改位置,因此,如果需要,可以将其删除并以其他方式激活插件

$scfwc_render_location = get_theme_mod( 'scfwc_render_location');
    switch ( $scfwc_render_location ) :
        case 'scfwc_after_heading' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 6 );
            break;
        case 'scfwc_after_price' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 11 );
            break;
        case 'scfwc_after_short_desc' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 21 );
            break;
        case 'scfwc_after_add_cart' :
            add_action( 'woocommerce_single_product_summary', array( $this, 'scfwc_html_product' ), 31 );
            break;
        case 'scfwc_after_single_product_summary' :
            add_action( 'woocommerce_product_thumbnails', array( $this, 'scfwc_html_product' ), 30 );
        break;
    endswitch;

1 个答案:

答案 0 :(得分:1)

我不知道$this引用了什么类,也不知道如何获取它的实例,所以这是伪代码。但是,一旦让meta字段显示并保存在admin中,就可以使用meta字段的值有条件地添加scfwc_html_product()方法。

function kia_conditionally_add_countdown() {
    global $product;
    if( $product->get_meta( '_show_countdown', true ) ) {
        $my_class = somehow_get_instance_of_class();
        add_action( 'woocommerce_single_product_summary', array( $my_class, 'scfwc_html_product' ), 11 );
    }   
}
add_action( 'woocommerce_before_single_product_summary', 'kia_conditionally_add_countdown' );

这没有考虑主题mod,只是硬编码优先级/位置。如果需要,可以在条件逻辑中添加对theme_mod的支持。