67
A client needed to add “something” upon product publishing. For example, product meta key “total_sales” with value = 0 gets added automatically once a WooCommerce product is created.
So, how do we run (“hook”) our function when a new product is published?
PHP Snippet: Add Custom Meta When a Product is Published
In here we trigger our function when a product goes from a non-published status (‘draft’, ‘pending’, ‘private’, ‘future’) to ‘publish’ status.
/**
* @snippet Hook into product publishing
* @how-to Get tutoraspire.com FREE
* @author Tutor Aspire
* @compatible WooCommerce 6
* @donate $9 https://tutoraspire.com
*/
add_action( 'transition_post_status', 'tutoraspire_add_custom_meta_on_publish_product', 9999, 3 );
function tutoraspire_add_custom_meta_on_publish_product( $new_status, $old_status, $post ) {
if ( 'product' === $post->post_type && 'publish' === $new_status && 'publish' !== $old_status ) {
update_post_meta( $post->ID, 'total_amount', '0' );
}
}