Отображение класса доставки товаров на страницах отдельных продуктов Woocommerce. - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь отобразить класс доставки на странице продукта, но я должен сделать что-то не так, потому что ничего не отображается ..

Я использовал приведенный ниже код в function.php:

add_action('woocommerce_single_product_summary', 'display_specific_shipping_class', 15 );
function display_specific_shipping_class(){
    global $product;

    // HERE define your targeted shipping class name
    $defined_shipping_class = "Estimated Delivery in 7-15 days";

    $product_shipping_class = $product->get_shipping_class();

    // Get the product shipping class term name
    $term_name = get_term_by( 'slug', $product_shipping_class, 'product_shipping_class' );

    if( $term_name == $defined_shipping_class ){
        echo '<p class="product-shipping-class">' . $term_name . '</p>';
    }
}

1 Ответ

0 голосов
/ 01 марта 2019

Вы получаете объект WP_term, а не имя термина ... Поэтому вместо этого используйте следующее:

add_action('woocommerce_single_product_summary', 'display_specific_shipping_class', 15 );
function display_specific_shipping_class(){
    global $product;

    // HERE define your targeted shipping class name
    $defined_shipping_class = "Estimated Delivery in 7-15 days";

    // Get the product shipping class WP_Term Object
    $term = get_term_by( 'slug', $product->get_shipping_class(), 'product_shipping_class' );

    if( is_a($term, 'WP_Term') && $term->name == $defined_shipping_class ){
        echo '<p class="product-shipping-class">' . $term->name . '</p>';
    }
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы).Теперь должно работать.

...