Отобразить суффикс цены выбранного варианта в переменных продуктах Woocommerce
Я использую эту функцию, поэтому я получаю цену изменения по умолчанию, но я хочу показать свой суффикс цены после цены:
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
foreach($product->get_available_variations() as $pav){
$def=true;
foreach($product->get_variation_default_attributes() as $defkey=>$defval){
if($pav['attributes']['attribute_'.$defkey]!=$defval){
$def=false;
}
}
if($def){
$price = $pav['display_price'];
}
}
return woocommerce_price($price);
}
То, что я получаю сейчас, например, "€15,00", но я хочу, чтобы оно показало "€15,00 за килограмм", а "за килограмм" - суффикс цены.
1 ответ
Ваш код устарел с Woocommerce 3 ( get_variation_default_attributes()
а также woocommerce_price()
устарели).
Будет отображаться суффикс цены выбранного варианта для Woocommerce 3:
add_filter('woocommerce_available_variation', 'display_variation_price_suffixed', 10, 3 );
function display_variation_price_suffixed( $variation_data, $product, $variation ) {
$variation_data['price_html'] .= ' <span class="price-suffix">' . __("per kilo", "woocommerce") . '</span>';
return $variation_data;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
При необходимости вы можете использовать
$variation_data['attributes']
массив для целевых значений определенных атрибутов продукта в цикле foreach.
Для информации, фильтр крючок woocommerce_available_variation
находится внутри WC_Product_Variable
get_available_variation()
метод.