В WooCommerce, по-умолчанию, когда вы добавляете новый товар, его цена остаётся пустой, если её принудительно не вписать и товар автоматически становится бесплатным.
Есть много кейсов, где ручное задание цены нежелательно, а оставление поля пустым недопустимо. В данном случае поможет автоматическое проставление дефолтной цены.
Как это сделать в WooCommerce
Конечно же, при помощи небольшого сниппета. Откройте файл functions.php в вашем любимом ванильном редакторе для написания кода внутри активной темы и добавьте в конце:
/**
* Задание дефолтной цены для товара в 10 руб.,
* если она не указана вручную
*
* @param int $post_id идентификатор товара
* @param object $post объект поста
*/
function mihdan_product_default_price( $post_id, $post ) {
$product = wc_get_product( $post_id );
$already_set = get_post_meta( $post_id, '_set_default_price', true );
$price = $product->get_price();
if ( 'yes' !== $already_set && empty( $price ) ) {
$product->set_regular_price( '10' );
$product->save();
update_post_meta( $post_id, '_set_default_price', 'yes' );
}
}
add_action( 'woocommerce_process_product_meta', 'mihdan_product_default_price', 999, 2 );
Этот скрипт установить цену на продукт в 10 руб. единожды, если товар не имеет мета-поля _set_default_price=yes и если цена не задана ручками.
Ссылки
Источник: https://www.kobzarev.com/wordpress/woocommerce-default-price-for-products/