WooCommerce отображает данные о вариациях продуктов на вкладке и отключает другое содержимое вкладки - PullRequest
0 голосов
/ 30 мая 2018

Поэтому я пытаюсь отобразить длину, ширину и высоту варианта WooCommerce во вкладке.Все идет хорошо, но отключает другие вкладки.По сути, они возвращаются без содержания.

// Update descriptions tab
add_filter( 'woocommerce_product_tabs', 'woo_custom_description_tab', 98 );
function woo_custom_description_tab( $tabs ) {
$tabs['description']['callback'] = 'woo_custom_description_tab_content';    // Custom description callback
return $tabs;
}
function woo_custom_description_tab_content() {

global $product;

$available_variations = $product->get_available_variations();

$variation_id=$available_variations[0]['variation_id']; // Variation ID for first variation

$variable_product1 = new WC_Product_Variation( $variation_id );

echo '<strong>Product Box Dimensions</strong>';
if($variable_product1 ->get_length() != ''){
   echo '<div class="dimensions">Length: ' . $variable_product1 ->get_length() . ' ' . get_option( 'woocommerce_dimension_unit' ); 
}

if($variable_product1 ->get_width() != ''){
   echo '<div class="dimensions">Width: ' . $variable_product1 ->get_width() . ' ' . get_option( 'woocommerce_dimension_unit' ); 
}

if($variable_product1 ->get_height() != ''){
echo '<div class="dimensions">Height: ' . $variable_product1 ->get_height() . ' ' . get_option( 'woocommerce_dimension_unit' ); 
}


}

1 Ответ

0 голосов
/ 30 мая 2018

В вашем коде есть ошибки.

  1. Перед извлечением вариантов, пожалуйста, подтвердите, что продукт является переменным продуктом.
  2. Ваша функция обратного вызова предназначена для вкладки описания продукта.Таким образом, он разрушит содержимое по умолчанию на вкладке описания.

Вот обновленный код.

add_filter( 'woocommerce_product_tabs', 'woo_custom_description_tab', 98 );


function woo_custom_description_tab( $tabs ) {

    $tabs['description']['callback'] = 'woo_custom_description_tab_content';    // Custom description callback
    return $tabs;

}

function woo_custom_description_tab_content() {

    global $product;

    if ( $product->is_type( 'variable' ) ) {  // Before fetching variables, confirm that it is a variable product.

        $available_variations = $product->get_available_variations();

        $variation_id=$available_variations[0]['variation_id']; // Variation ID for first variation

        $variable_product1 = new WC_Product_Variation( $variation_id );

        echo '<strong>Product Box Dimensions</strong>';

        if($variable_product1 ->get_length() != ''){
           echo '<div class="dimensions">Length: ' . $variable_product1 ->get_length() . ' ' . get_option( 'woocommerce_dimension_unit' ); 
        }

        if($variable_product1 ->get_width() != ''){
           echo '<div class="dimensions">Width: ' . $variable_product1 ->get_width() . ' ' . get_option( 'woocommerce_dimension_unit' ); 
        }

        if($variable_product1 ->get_height() != ''){
            echo '<div class="dimensions">Height: ' . $variable_product1 ->get_height() . ' ' . get_option( 'woocommerce_dimension_unit' ); 
        }

    }

}

Чтобы добавить новую пользовательскую вкладку, используйте приведенные ниже фрагменты и обновите код.

add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {

    // Adds the new tab

    $tabs['test_tab'] = array(
        'title'     => __( 'New Product Tab', 'woocommerce' ),
        'priority'  => 50,
        'callback'  => 'woo_new_product_tab_content'
    );

    return $tabs;

}
function woo_new_product_tab_content() {

    // The new tab content

    echo '<h2>New Product Tab</h2>';
    echo '<p>Here\'s your new product tab.</p>';

}

Дополнительные настройки на вкладках продуктов доступны на странице документации WooCommerce.

https://docs.woocommerce.com/document/editing-product-data-tabs/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...