如何在Woocommerce中的自定义产品类型中添加变体选项卡?

时间:2017-03-16 13:33:42

标签: php wordpress woocommerce hook-woocommerce

  • 我已经为"礼品卡"安装了一个插件,基本上是添加一个 产品类型"礼品卡"。
    • 我需要增强其功能。
    • 还有其他标签可用于此选项卡" Variations"是 不
    • 如何添加此标签,以便我的自定义产品类型也可以 表现得像一个可变的产品。
    • 屏幕截图:http://prntscr.com/ekogwd
    • 我严格意味着使用我的自定义产品类型意味着我无法将其更改为可变产品类型。
    • 是否有任何挂钩,操作或过滤器可以手动将此标签添加到我的自定义产品类型"礼品卡"使用woocommerce?

1 个答案:

答案 0 :(得分:4)

我假设您已将礼品卡添加到产品类型选择器中。但是,我在这里添加它是为了完整性,因为你在第二个函数中使用相同的名称。

woocommerce_product_data_tabs

您可以通过过滤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();
        }
    });

});

修改您需要添加一些javascript来控制现有属性中“已启用变体”标签的可见性,以及添加属性时的可见性。这应该可以解决问题:

{{1}}