web-dev-qa-db-ja.com

Woocommerce - 商品の通常価格のデフォルト設定方法

私は機器のリクエストに職場でウーコマースを使用しているので、これから作成する商品はすべて0ポンドである必要があります。商品追加フォームの通常価格フィールドにデフォルト値の0を設定することは可能ですか?

ありがとうジャック

3
lupo

save_postフックでチェックを実行できますが、WooCommerceには、投稿タイプとセキュリティチェックがすでに行われているメタ処理のためのフックがすでにあります。フックを使って、通常価格のnull文字列をチェックして0に設定するだけです。

function wpa104760_default_price( $post_id, $post ) {

    if ( isset( $_POST['_regular_price'] ) && trim( $_POST['_regular_price'] ) == '' ) {
        update_post_meta( $post_id, '_regular_price', '0' );
    }

}
add_action( 'woocommerce_process_product_meta', 'wpa104760_default_price' );

あなたがWooCommerceで何をしようとしているのかわかりませんが、クライアントに http://a3rev.com/shop/woocommerce-quotes-and-orders/ /を使用して、通常の価格/カートストアから"見積もり依頼"カタログ。

編集:上記では商品が作成されたり更新されたりしたときはいつでも価格として0が保存されますが、以下は常に価格に関係なく商品を購入可能にします。

add_filter('woocommerce_is_purchasable', '__return_TRUE'); 

「sale」フラッシュを完全に削除するには、単にアクションフックから外します。

function woocommerce_remove_stuff(){
  remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 );
}
add_action('woocommerce_before_single_product', 'woocommerce_remove_stuff');
7
helgatheviking

私はこの問題の解決策を見つけました、この関数は製品を更新した後に0に製品の通常価格と販売価格を設定します。

function set_default_price( $post_id, $post ) {

    if ( isset( $_POST['_regular_price'] ) && trim( $_POST['_regular_price'] ) == '' ) {
        update_post_meta( $post_id, '_regular_price', '0' );
    }

if ( isset( $_POST['_sale_price'] ) && trim( $_POST['_sale_price'] ) == '' ) {
        update_post_meta( $post_id, '_sale_price', '0' );
    }

}
add_action( 'woocommerce_process_product_meta', 'set_default_price' );

以下のコード行は新製品を購入可能にします、あなたは新製品のためにこのコードを使うことができます:

add_filter('woocommerce_is_purchasable', '__return_TRUE'); 
0
Ramzi Benzina