#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». Спасибо