Intereting Posts
Отключить страницу с CSS Пользовательский аватар пользователя в списке пользователей WordPress Проблема с add_rewrite_tag Проверьте, правильно ли работает wp_mail? Если я изменю структуры постоянной ссылки, могу ли я использовать htaccess для переадресации ссылок? Как настроить category_description ()? Функция Mediaelement.js не работает Как отображать обычные сообщения и настраиваемые типы сообщений, которые попадают под категорию, используя шаблон общей категории? Как получить значение настроек WordPress для настройки Могу ли я сохранить часть сообщения во внешнем файле и присоединиться к ней на лету, чтобы избежать избыточности в таблице wp_posts? Виджет для показа последних видеороликов Как получить все дочерние страницы на родительской странице? Использование AJAX в теме wordpress Возрастание ордера игнорируется в мета-запросе? Тип персонализированного типа и шаблон страницы

Текст цены Woocommerce

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

Я создал настраиваемое поле для обоих, так, например, если галочка настраивается в поле «price_per_person», цена будет отображаться как 100 долларов США на человека или если будет отмечено специальное поле «price_per_person», цена будет отображаться как 100 долларов США за группу

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

add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 ); function custom_price_html( $price, $product ){ $price = $price . ' per person'; return apply_filters( 'woocommerce_get_price', $price ); } 

Благодаря!

Обновление с выходом

 Array ( [_edit_last] => Array ( [0] => 1 ) [_edit_lock] => Array ( [0] => 1428754721:1 ) [_visibility] => Array ( [0] => visible ) [_stock_status] => Array ( [0] => instock ) [total_sales] => Array ( [0] => 0 ) [_downloadable] => Array ( [0] => no ) [_virtual] => Array ( [0] => no ) [_regular_price] => Array ( [0] => 79 ) [_sale_price] => Array ( [0] => ) [_purchase_note] => Array ( [0] => ) [_featured] => Array ( [0] => no ) [_weight] => Array ( [0] => ) [_length] => Array ( [0] => ) [_width] => Array ( [0] => ) [_height] => Array ( [0] => ) [_sku] => Array ( [0] => ) [_product_attributes] => Array ( [0] => a:0:{} ) [_sale_price_dates_from] => Array ( [0] => ) [_sale_price_dates_to] => Array ( [0] => ) [_price] => Array ( [0] => 79 ) [_sold_individually] => Array ( [0] => ) [_manage_stock] => Array ( [0] => no ) [_backorders] => Array ( [0] => no ) [_stock] => Array ( [0] => ) [_upsell_ids] => Array ( [0] => a:0:{} ) [_crosssell_ids] => Array ( [0] => a:0:{} ) [_product_image_gallery] => Array ( [0] => ) [slide_template] => Array ( [0] => ) [_thumbnail_id] => Array ( [0] => 63 ) [_wpb_vc_js_status] => Array ( [0] => false ) [_wpb_vc_js_interface_version] => Array ( [0] => 0 ) [price_per_person] => Array ( [0] => 1 ) [_price_per_person] => Array ( [0] => field_5528e5f80bad0 ) [price_per_group] => Array ( [0] => 0 ) [_price_per_group] => Array ( [0] => field_5528e6580bad1 ) ) 

Solutions Collecting From Web of "Текст цены Woocommerce"

Просто используйте параметр $product для получения значения настраиваемого поля и определите, что вернуть:

 function custom_price_html( $price, $product ) { if ( ( int ) get_post_meta( $product->id, 'price_per_person', true ) ) $price .= ' per person'; elseif ( ( int ) get_post_meta( $product->id, 'price_per_group', true ) ) $price .= ' per group'; $price .= '[filtered]'; // For debugging - if you don't see this next to your prices, the filter isn't even running, hence why it's not working! return $price; } add_filter( 'woocommerce_get_price_html', 'custom_price_html', 500, 2 ); 

Предполагается, что вы сохраняете каждое «проверенное» состояние под своим собственным мета-ключом и что если состояние не отмечено, поле не существует или «пусто».

Возможно, на самом деле имеет смысл использовать одно значение price_type , а затем сохранить значение per_person или per_group зависимости от состояния проверки (так как цена фактически не может быть обоими типами, не так ли?).

Обновление. Чтобы отладить ситуацию, поместите ее в свой файл functions.php , просмотрите продукт в своем браузере, а затем обновите свой вопрос с помощью вывода:

 function wpse_183901_debug_product() { if ( is_singular( 'product' ) ) { echo '<pre>'; echo esc_html( print_r( get_post_meta( get_queried_object_id() ), true ) ); echo '</pre>'; exit; } } add_action( 'template_redirect', 'wpse_183901_debug_product' );