Проблема скрыть единую цену товара для переменных товаров на страницах магазина и архивов WooCommerce

#wordpress #woocommerce #product #hook-woocommerce

Вопрос:

Я использую этот фрагмент, чтобы скрыть единую цену, если продукт является переменным. Работает нормально, но не применяется к первой переменной продукта цикла:

 add_action( 'woocommerce_after_shop_loop_item_title', 'hide_single_price' );

function hide_single_price() {
    global $product;
    if ( $product->is_type( 'variable' ) ) {
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    }
}
 

Есть идеи, почему?

введите описание изображения здесь

Ответ №1:

Я не сразу вижу проблему с вашим текущим кодом, что вы можете попробовать:

  • Отрегулируйте значение приоритета
  • Повторите текст «отладка». Таким образом, вы можете проверить, отображается ли это для первого продукта.
 function hide_single_price() {
    // Get the global product object
    global $product;

    // Is a WC product
    if ( is_a( $product, 'WC_Product' ) ) {
        if ( $product->is_type( 'variable' ) ) {
            // Debug purposes, delete afterwards!!
            echo 'DEBUG!';
            
            remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
        }
    }
}
add_action( 'woocommerce_after_shop_loop_item_title', 'hide_single_price', 5 );
 

Комментарии:

1. Что ж, ваш код работает, я полагаю, что трюк был приоритетом «5». Спасибо