Woocommerce -How to set product regular price default

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

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

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

Method 2

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


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x