我正在使用woocommerce处理设备请求,因此我将创建的所有产品都需要0英镑。是否可以在添加产品表单上为常规价格字段设置默认值0?
ThanksJack谢谢
我正在使用woocommerce处理设备请求,因此我将创建的所有产品都需要0英镑。是否可以在添加产品表单上为常规价格字段设置默认值0?
ThanksJack谢谢
你可以检查一下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\');
我找到了此问题的解决方案,此函数在更新产品后将产品正常价格和销售价格设置为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\');
所以在模板中。php原始函数如下所示: function meta_form() { global $wpdb; $limit = (int) apply_filters( \'postmeta_form_limit\', 30 ); $keys = $wpdb->get_col( \" SELECT meta_key FROM $wpdb->postm