Отобразить настраиваемое поле переменного продукта на вкладке "дополнительная_информация" - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь отобразить метаполе "_ts_gtin" переменного продукта на вкладке "дополнительная_информация" одного продукта.

Я только что понял, что могу получить значение определенногоВариант таким образом:

get_post_meta( $variations[ 'variation_id' ], '_ts_gtin', true )

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Добавьте приведенный ниже фрагмент кода, чтобы выполнить вышеперечисленное -

add_action( 'woocommerce_product_additional_information', 'add_info_in_product_additional_information', 99 );

function add_info_in_product_additional_information( $product ) {
    if( $product ) {
        $children_ids = $product->get_children();
        if( $children_ids ) {
            echo '<ul id="variation-gtin">';
            foreach ( $children_ids as $v_id ) {
                echo '<li class="item-'.$v_id.'">#' . $v_id . ': ' . get_post_meta( $v_id , '_ts_gtin', true ) . '</li>';
            }
            echo '</ul>';
        }
    }
}

// scripts
add_action( 'wp_footer', 'add_scripts_on_found_variation' );

function add_scripts_on_found_variation() {
    ?>
    <script type="text/javascript">
        ( function( $ ) {
            $( 'form.variations_form').on( 'found_variation', function( event, variation ) {
                $( '#variation-gtin .item-'+variation.variation_id ).show().siblings().hide();
            } );
        } )( jQuery );
    </script>
    <?php
}

Коды переходят к функциям вашей активной темы. Php

0 голосов
/ 07 ноября 2019

Вы можете добавить это в свой functions.php или плагин:

add_action( 'woocommerce_product_additional_information', 'print_variation_html' );

function print_variation_html($product){
    $variations_id = $product->get_variation_id();   

    if(!$variations_id) return;

    $variation_meta = get_post_meta( $variations_id , '_ts_gtin', true );
    print_r( $variation_meta );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...