There are times when doing manual work – such as creating a WooCommerce coupon – is too time consuming. Imagine you need to bulk generate 1,000 coupon codes – sure you have 2,000 minutes at your disposal to do it all by hand?
Well, today, we’ll take a look at how to bulk generate coupon codes from the WordPress backend by using a simple PHP “for“. Once the function triggers, it will just be a matter of seconds!
Enjoy!

PHP Snippet: Bulk Create Coupon Codes @ WordPress Dashboard
Note: in order to trigger the function, you must go to any WordPress admin URL with the “bb-gen-coupons” URL parameter e.g. /wp-admin/admin.php?bb-gen-coupons. This will make sure the coupons are generated.
/**
* @snippet Bulk Generate Coupons @ WordPress Admin
* @how-to Get CustomizeWoo.com FREE
* @author Rodolfo Melogli
* @compatible WooCommerce 6
* @donate $9 https://businessbloomer.com/bloomer-armada/
*/
add_action( 'admin_init', 'bbloomer_generate_coupons_admin' );
function bbloomer_generate_coupons_admin() {
if ( isset( $_REQUEST['bb-gen-coupons'] ) ) {
if ( ! current_user_can( 'manage_woocommerce' ) ) {
wp_die( 'You do not have permission to bulk generate coupons' );
}
$number_of_coupons = 100; // DEFINE BULK QUANTITY
for ( $i = 1; $i <= $number_of_coupons; $i++ ) {
$coupon = new WC_Coupon();
$random_code = bin2hex( random_bytes( 8 ) ); // 16 CHARS PHP 7+ ONLY
if ( wc_get_coupon_id_by_code( $random_code ) ) continue; // SKIP IF CODE EXISTS
$coupon->set_code( $random_code );
$coupon->set_description( 'Coupon generated programmatically (' . $i . '/' . $number_of_coupons . ')' );
$coupon->set_discount_type( 'percent' );
$coupon->set_amount( 20 );
$coupon->set_minimum_amount( 1 );
$coupon->set_individual_use( true );
$coupon->set_product_categories( array( 54, 55 ) );
$coupon->set_usage_limit_per_user( 1 );
$coupon->save();
}
}
}
Hi, code works fine, thanks.
I was wondering how easy it could be to make the code all in capital and in this format: XXXX-XXXX-XXXX-XXXX
Any clue how to do that easily?
Thanks
Matthias
Well at the moment I generate random codes. If you modify this, you can give it the format you want:
Hi,
Great article! What if you wanted to do just the opposite and bulk delete the coupon codes?
Hello Josh, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!