В 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/