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



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

该插件目前正在所有产品中使用主题模组的添加操作激活,以便能够更改位置,这确实不是必需的,因此如果需要,可以将其删除并替换为其他方式,以激活每个产品为基础的插件

$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;
我不知道

$this引用的是什么类,或者如何获取它的实例,所以这是伪代码。但是,一旦您在管理中显示并保存了元字段,您就可以使用元字段的值有条件地添加 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' );

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

最新更新