Заменить переменную цену продукта Woocommerce из значений пользовательских полей - PullRequest
0 голосов
/ 07 декабря 2018

Я хочу использовать настраиваемое поле для добавления цены для поставщиков в переменных продуктах.Итак, я использую следующий код для получения максимальной и минимальной цены настраиваемого поля переменного продукта, но он ничего не возвращает.Пожалуйста, помогите мне узнать, как можно получить цену из настраиваемого поля для переменных продуктов.

<code>    // Min and max variable prices
    add_filter( 'woocommerce_variable_sale_price_html', 'new_variable_price_format', 10, 2 );
    add_filter( 'woocommerce_variable_price_html', 'new_variable_price_format', 10, 2 );
    function new_variable_price_format( $price, $product ) {
    $price = get_post_meta( $product->get_id(), 'vendor_price_regu');
    echo "<pre>";
    print_r($price);
    echo "
"; вернуть цену в $;}

1 Ответ

0 голосов
/ 07 декабря 2018

Поскольку речь идет об отображаемом диапазоне переменных цен, вам нужно получить все цены вариаций и отобразить минимальные и максимальные цены в произвольном формате, чтобы он работал:

add_filter( 'woocommerce_variable_price_html', 'custom_variable_price_html', 10, 2 );
function custom_variable_price_html( $price, $product) {
    $prices = [];
    foreach($product->get_children() as $variation_id ){
        if( $vprice = get_post_meta( $variation_id, 'vendor_price_regu', true ) )
            $prices[] = $vprice;
    }

    if( sizeof($prices) > 0 ){
        sort($prices);

        $min_price = reset( $prices );
        $max_price = end( $prices );

        if ( $min_price == $max_price ) {
             $price = wc_price($min_price);
        } else {
            $price = wc_price($min_price) . ' - ' . wc_price($max_price);
        }
    }
    return $price;
}

Код входит в функцию.PHP-файл вашей активной дочерней темы (или активной темы).Это должно работать.

...