Woocommerce: программно добавлять ссылки, если продукты имеют значение дани - PullRequest
0 голосов
/ 09 апреля 2020

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

function stilart_link() {
        echo '<p class="stilart">Mere i samme stil: </p>';
    $terms = get_the_terms( $product->id, 'pa_stilart');
     foreach($terms as $term){  
     if($term->name == 'Rock'){
        echo '<p class="stilart"><a href="/stilart/rock"> <u>Rock-noder</u></a></p>';
     }
else if($term->name == 'Musical'){
        echo '<p class="stilart"><a href="/stilart/musical"> <u>Musical-noder</u></a></p>';
     }
else if($term->name == 'Disney'){
        echo '<p class="stilart"><a href="/stilart/disney"> <u>Disney-noder</u></a></p>';
     }      
else if($term->name == 'Filmmusik'){
        echo '<p class="stilart"><a href="/stilart/filmmusik"> <u>Filmmusik</u></a></p>';
     }  
else if($term->name == 'Jul'){
        echo '<p class="stilart"><a href="/stilart/jul"> <u>Julenoder</u></a></p>';
     }  
}
}
add_action( 'woocommerce_after_single_product_summary', 'stilart_link' );

Это работает. Но мне интересно, можно ли это сделать автоматически, чтобы избежать длинного кода. Это то, что я ищу: у продукта есть ценность, которая принадлежит данью "stilart". Например. «Дисней». На этот продукт я хочу добавить ссылку на / stilart / disney. И та же процедура с другими значениями «дань» - например, Muscal, filmmusik.

1 Ответ

0 голосов
/ 09 апреля 2020

Вы можете использовать свойство slug и title, полученное из объекта $ term. Попробуйте вот так:

    function stilart_link() {
        echo '<p class="stilart">Mere i samme stil: </p>';
        $terms = get_the_terms( $product->id, 'pa_stilart');
         foreach($terms as $term){  
             echo '<p class="stilart"><a href="/stilart/'.$term->slug.'"> <u>'.$term->name.'</u></a></p>'; 
        }
    }
add_action( 'woocommerce_after_single_product_summary', 'stilart_link' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...