admin管理员组文章数量:1122846
I am using woocommerce at work for equipment requests, therefore all products I will create will need to be £0. Is it possible to set a default value of 0 for the regular price field on the add product form?
Thanks Jack
I am using woocommerce at work for equipment requests, therefore all products I will create will need to be £0. Is it possible to set a default value of 0 for the regular price field on the add product form?
Thanks Jack
Share Improve this question asked Jun 30, 2013 at 7:27 lupolupo 431 gold badge1 silver badge3 bronze badges 1- 1 You can alternatively use a plugin like WooCommerce Request A Quote to just remove payment in general. – Karl Wolf Commented Jan 26, 2016 at 12:27
3 Answers
Reset to default 9You could run a check on the save_post
hook, but WooCommerce already has a hook for processing meta where the post type and security checks have already been done. So using their hook, you just check for a null string on the regular price and set it to 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' );
Not sure what you are trying to do with WooCommerce, but I had a client use http://a3rev.com/shop/woocommerce-quotes-and-orders/ to switch from a normal price/cart store to a "request for quote" catalog.
Edit: While the above will save a 0 as the price any time a product is created/updated, the following will always allow a product to be purchasable regardless of the price:
add_filter('woocommerce_is_purchasable', '__return_TRUE');
To totally remove the "sale" flash, simply unhook it from its action hook:
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');
I found the solution for this problem, this function sets the product regular price and sale price to 0 after updating the product:
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' );
The line of code below make new product purchasable, you can use this code for new products:
add_filter('woocommerce_is_purchasable', '__return_TRUE');
In Woocommerce 3 you can use this:
function NAME_default_price($product)
{
if (!$product->get_regular_price()) {
$product->set_regular_price('0');
}
}
add_action('woocommerce_admin_process_product_object', 'NAME_default_price');
本文标签: phpWoocommerce How to set product regular price default
版权声明:本文标题:php - Woocommerce -How to set product regular price default 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736309381a1933999.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论