WooCommerce-如何设置产品常规价格默认

时间:2013-06-30 作者:lupo

我正在使用woocommerce处理设备请求,因此我将创建的所有产品都需要0英镑。是否可以在添加产品表单上为常规价格字段设置默认值0?

ThanksJack谢谢

2 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

你可以检查一下save_post 钩子,但是WooCommerce已经有了一个钩子来处理meta,其中已经完成了post类型和安全检查。因此,使用它们的钩子,您只需检查常规价格上的空字符串并将其设置为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”flash,只需将其从动作挂钩上取下:

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\');

SO网友:Ramzi Benzina

我找到了此问题的解决方案,此函数在更新产品后将产品正常价格和销售价格设置为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\'); 

结束