Добавление конкретной информации на страницу отдельного продукта на основе «Идентификатора тега» в WooCommerce

#php #wordpress #woocommerce #tags #product

#php #wordpress #woocommerce #Теги #продукт

Вопрос:

В мета-разделе страницы отдельного продукта WooCommerce мне нужно извлечь один идентификатор тега (135).

Я хочу просмотреть все теги, которые есть в простом продукте, и если я наткнусь на тег с идентификатором 135 для печати:

  • Материал: кожа (ID 135)

Я что-то пытался, но не могу получить этот идентификатор тега

 add_action('woocommerce_product_meta_end', 'wh_renderProductTagDetails');

function wh_renderProductTagDetails()
{
    global $product;
    $tags = get_the_terms($product->get_id(), 'product_tag');
    //print_r($tags);
    if (empty($tags))
        return;
    foreach ($tags as $tag_detail)
    {
        
        if ($tags (135)){
        
        // echo '<p> Material: Leather</p>'; 
       echo '<p> Material: ' . $tag_detail->name . '</p>'; 
        }
    }
}
  

Может кто-нибудь рассказать мне, как это сделать?

Ответ №1:

Ваш код содержит некоторые незначительные ошибки.

Этого должно быть достаточно — объяснение с помощью тегов комментариев, добавленных в код.

 function action_woocommerce_product_meta_end() {
    global $product;
    
    // Is a WC product
    if ( is_a( $product, 'WC_Product' ) ) {
        // Set taxonmy
        $taxonomy = 'product_tag';
        
        // Get the terms
        $terms = get_the_terms( $product->get_id(), $taxonomy );
        
        // Error or empty
        if ( is_wp_error( $terms ) ) {
            return $terms;
        }

        if ( empty( $terms ) ) {
            return false;
        }
        
        // Loop trough
        foreach ( $terms as $index => $term ) {
            // Product tag Id
            $term_id = $term->term_id;
            
            // DEBUG: remove afterwards
            echo '<p>DEBUG - Term id: ' . $term_id . '</p>';
            
            // Compare
            if ( $term_id == 135 ) {
                echo '<p>Material: ' . $term->name . '</p>'; 
            }
        }
    }
}
add_action( 'woocommerce_product_meta_end', 'action_woocommerce_product_meta_end', 10, 0 );