На странице одного продукта с переменным продуктом, когда я меняю другой вариант из раскрывающегося списка, я хочу показать цену из другого настраиваемого поля вместо цены варианта по умолчанию (это поле я уже создал на панели инструментов). Но я не нашел способа показать цену на странице продукта.
Вот мой код:
add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2 );
function custom_price( $price, $product )
{
return $price;
}
Внутри функции custom_price
, если я получу идентификатор варианта, я мог бы сделать что-то вроде этого:
function custom_price( $price, $product )
{
$variation_id = ???
return get_post_meta( $variation_id, 'custom_field', true );
}
Как я могу получить идентификатор варианта внутри этой функции? Заранее спасибо.
Вы можете просто использовать $product->get_id()
;
add_filter('woocommerce_product_variation_get_regular_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'custom_price', 99, 2 );
function custom_price( $price, $product )
{
$variation_id = $product->get_id();
return get_post_meta( $variation_id, 'custom_field', true );
}
Ответ ниже устарел начиная с WooCommerce 3
WC_Product
get_variation_id()
устарело и устарело. Он был заменен на$product->get_id()
… Поэтому вам следует отказаться от ответа ниже, так как это неправильный ответ.