php-如何在Woocommerce中的自定义产品类型中添加“变化”标签?

>我已经安装了“礼品卡”插件,基本上是在添加一个
产品类型“礼品卡”.

>我需要增强其功能.
>还有其他选项卡可用于此,但选项卡“变量”是
不.
>如何添加此标签,这样我的自定义产品类型也可以
表现得像可变产品.
>屏幕截图:http://prntscr.com/ekogwd
>而且我必须严格使用自定义产品类型,这意味着我无法将其更改为可变产品类型.
>是否有任何挂钩,操作或过滤器,都可以使用woocommerce将此选项卡手动添加到我的自定义产品类型“礼品卡”中?

解决方法:

我认为您已经将礼品卡添加到产品类型选择器中.但是,为了完整性起见,我在此处添加了它,因为您必须在第二个函数中使用相同的名称.

add_filter( 'product_type_selector', 'so_42835590_add_product_type' );
function so_42835590_add_product_type( $types ){

    // Key should be exactly the same as in the class product_type parameter
    $types[ 'gift-card' ] = __( 'Gift Card', 'your-plugin' );

    return $types;

}

您可以通过过滤woocommerce_product_data_tabs添加自己的自定义标签,但也可以将类添加到现有标签.类是metabox javascript用于确定更改产品类型时显示的内容和隐藏的内容的内容.

add_filter( 'woocommerce_product_data_tabs', 'so_42835590_product_data_tabs' );
function so_42835590_product_data_tabs( $tabs ) {

    $product_type = 'gift-card'; // must match array key in previous snippet

    // Add an additional class to an existing tab, ex: Variations.
    $tabs[ 'variations' ][ 'class' ][] = 'show_if_' . $product_type;  

    return $tabs;
}

编辑时,您确实需要添加一些JavaScript,以控制现有属性以及添加属性时“启用变体”选项卡的可见性.这应该可以解决问题:

jQuery( function ( $) {

    // Variable type options are valid for variable workshop.
    $( '.show_if_variable:not(.hide_if_gift-card)' ).addClass( 'show_if_gift-card' );

    // Trigger change
    $( 'select#product-type' ).change();

    // Show variable type options when new attribute is added.
    $( document.body ).on( 'woocommerce_added_attribute', function(e) {

        $( '#product_attributes .show_if_variable:not(.hide_if_gift-card)' ).addClass( 'show_if_gift-card' );

        var $attributes     = $( '#product_attributes' ).find( '.woocommerce_attribute' );

        if ( 'gift-card' == $( 'select#product-type' ).val() ) {
            $attributes.find( '.enable_variation' ).show();
        }
    });

});
上一篇:php-在WooCommerce 3中“创建帐户”上方移动“结帐订单注释”字段


下一篇:php-根据woocommerce类别更改同一产品的默认变化值