В данной статье я рассмотрю пример, когда необходимо массово увеличить цену у всех продуктов на сайте.

Когда может быть полезно?

Например, произошло повышение цен, а товаров на сайте очень много. Вручную править цены довольно долго и неудобно.

Все что вам нужно сделать, это добавить следующий код в functions.php вашей темы:

Для простых, группированных и внешних товаров

add_filter('woocommerce_product_get_price', 'custom_price', 99, 2 );
add_filter('woocommerce_product_get_regular_price', 'custom_price', 99, 2 );

function custom_price( $price, $product ) {
    //очищаем временный кэш товара (при необходимости)
    wc_delete_product_transients($product->get_id());

    return $price + $price * 0.1; // X3 for testing
}

Для вариантивных товаров

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 ) {
    //очищаем временный кэш товара (при необходимости)
    wc_delete_product_transients($product->get_id());

    return $price + $price * 0.1; // X3 for testing
}

Для самих вариаций:

add_filter('woocommerce_variation_prices_price', 'custom_variation_price', 99, 3 );
add_filter('woocommerce_variation_prices_regular_price', 'custom_variation_price', 99, 3 );

function custom_variation_price( $price, $variation, $product ) {
    //очищаем временный кэш товара (при необходимости)
    wc_delete_product_transients($variation->get_id());

    return $price + $price * 0.1; // X3 for testing
}

В данном случае я увеличила стоимость каждого товара на 10%. Также можно увеличить цену в несколько раз, или уменьшить стоимость на % или тоже в несколько раз.

Оценка: 0. Всего : 0.