Skip to content

Commit ae6666a

Browse files
authored
Merge pull request #58 from woocommerce/fix/13
disable WC emails on CLI customer, order generation
2 parents 4489547 + 60911cf commit ae6666a

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

includes/CLI.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public static function orders( $args, $assoc_args ) {
9090
}
9191

9292
if ( $amount > 0 ) {
93+
static::disable_emails();
9394
$progress = \WP_CLI\Utils\make_progress_bar( 'Generating orders', $amount );
9495
for ( $i = 1; $i <= $amount; $i++ ) {
9596
Generator\Order::generate( true, $assoc_args );
@@ -120,6 +121,7 @@ public static function orders( $args, $assoc_args ) {
120121
public static function customers( $args, $assoc_args ) {
121122
list( $amount ) = $args;
122123

124+
static::disable_emails();
123125
$progress = \WP_CLI\Utils\make_progress_bar( 'Generating customers', $amount );
124126
for ( $i = 1; $i <= $amount; $i++ ) {
125127
Generator\Customer::generate();
@@ -128,6 +130,40 @@ public static function customers( $args, $assoc_args ) {
128130
$progress->finish();
129131
WP_CLI::success( $amount . ' customers generated.' );
130132
}
133+
134+
/**
135+
* Disable sending WooCommerce emails when generating objects.
136+
*/
137+
protected static function disable_emails() {
138+
$email_actions = array(
139+
'woocommerce_low_stock',
140+
'woocommerce_no_stock',
141+
'woocommerce_product_on_backorder',
142+
'woocommerce_order_status_pending_to_processing',
143+
'woocommerce_order_status_pending_to_completed',
144+
'woocommerce_order_status_processing_to_cancelled',
145+
'woocommerce_order_status_pending_to_failed',
146+
'woocommerce_order_status_pending_to_on-hold',
147+
'woocommerce_order_status_failed_to_processing',
148+
'woocommerce_order_status_failed_to_completed',
149+
'woocommerce_order_status_failed_to_on-hold',
150+
'woocommerce_order_status_cancelled_to_processing',
151+
'woocommerce_order_status_cancelled_to_completed',
152+
'woocommerce_order_status_cancelled_to_on-hold',
153+
'woocommerce_order_status_on-hold_to_processing',
154+
'woocommerce_order_status_on-hold_to_cancelled',
155+
'woocommerce_order_status_on-hold_to_failed',
156+
'woocommerce_order_status_completed',
157+
'woocommerce_order_fully_refunded',
158+
'woocommerce_order_partially_refunded',
159+
'woocommerce_new_customer_note',
160+
'woocommerce_created_customer',
161+
);
162+
163+
foreach ( $email_actions as $action ) {
164+
remove_action( $action, array( 'WC_Emails', 'send_transactional_email' ), 10, 10 );
165+
}
166+
}
131167
}
132168
WP_CLI::add_command( 'wc generate products', array( 'WC\SmoothGenerator\CLI', 'products' ) );
133169
WP_CLI::add_command( 'wc generate orders', array( 'WC\SmoothGenerator\CLI', 'orders' ), array(

0 commit comments

Comments
 (0)