2016-08-25 3 views
1

Поэтому я использую условную из Тхо кода из этого example с this thread code успехом:WooCommerce - Условный has_term не работает больше после обновления

, но это больше не работает после обновления моего WordPress Сердечник и WooCommerce Plugin.

if (is_product() && has_term('sample-category', 'product_cat')){ 

    add_action('woocommerce_after_add_to_cart_button', 'add_custom_button', 10, 0); 
    function add_custom_button() { 
     global $products; 

     $product_link = get_permalink($products->id); 
     $sample_link = substr($product_link, 0, -1) . '-swatch-card/'; 
     echo '<a class="button alt btn-sample" href="' . esc_url($sample_link) .'">' . __("Order a Sample", "my_theme_slug") . '</a>'; 

    } 

} 

У ребенка плагин по-прежнему есть правильный код в файле function.php.

Как я могу решить эту проблему, пожалуйста?

Благодаря

ответ

2

Попробуйте этот способ может быть, с помощью $ после глобального объекта и встраивание условную внутри функции:

add_action('woocommerce_after_add_to_cart_button', 'add_custom_button', 10, 0); 
function add_custom_button() { 
    global $post; 
    if (has_term('collection', 'product_cat', $post->ID)) { 
     $product_link = get_permalink($post->ID); 
     $sample_link = substr($product_link, 0, -1) . '-swatch-card/'; 
     echo '<a class="button alt btn-sample" href="' . esc_url($sample_link) .'">' . __("Order a Sample", "my_theme_slug") . '</a>'; 
    } 
}; 

Условный has_term() нужно иногда это третий аргумент, чтобы работать ... В функции.php он не может найти текущий пост. Поэтому в этом случае лучше встроить его внутри функции после $ post или $ product global object.

Смежные вопросы