Skip to content

Commit 4fbcfe2

Browse files
author
Woo
committed
Updates to 6.0.27
1 parent 46cb0e0 commit 4fbcfe2

20 files changed

+431
-327
lines changed

automatewoo.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Plugin Name: AutomateWoo
44
* Plugin URI: https://automatewoo.com
55
* Description: Powerful marketing automation for your WooCommerce store.
6-
* Version: 6.0.26
6+
* Version: 6.0.27
77
* Author: WooCommerce
88
* Author URI: https://woocommerce.com
99
* License: GPLv3
@@ -37,7 +37,7 @@
3737
defined( 'ABSPATH' ) || exit;
3838

3939
define( 'AUTOMATEWOO_SLUG', 'automatewoo' );
40-
define( 'AUTOMATEWOO_VERSION', '6.0.26' ); // WRCS: DEFINED_VERSION.
40+
define( 'AUTOMATEWOO_VERSION', '6.0.27' ); // WRCS: DEFINED_VERSION.
4141
define( 'AUTOMATEWOO_FILE', __FILE__ );
4242
define( 'AUTOMATEWOO_PATH', __DIR__ );
4343
define( 'AUTOMATEWOO_MIN_PHP_VER', '7.4.0' );

changelog.txt

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
*** AutomateWoo Changelog ***
22

3+
2024-06-25 - version 6.0.27
4+
* Dev - PHPCS for Memberships.
5+
* Dev - PHPCS for Send Email actions.
6+
37
2024-06-18 - version 6.0.26
48
* Dev - fix unit tests for protecting admin roles.
59
* Tweak - Replace woo.com references with woocommerce.com.
+7-4
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
<?php
2-
// phpcs:ignoreFile
32

43
namespace AutomateWoo;
54

6-
if ( ! defined( 'ABSPATH' ) ) exit;
5+
if ( ! defined( 'ABSPATH' ) ) {
6+
exit;
7+
}
78

89
/**
910
* @class Action_Memberships_Abstract
1011
* @since 2.8
1112
*/
1213
abstract class Action_Memberships_Abstract extends Action {
1314

14-
function load_admin_details() {
15+
/**
16+
* Method to set the action's admin props.
17+
*/
18+
public function load_admin_details() {
1519
$this->group = __( 'Membership', 'automatewoo' );
1620
}
17-
1821
}
+59-37
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,37 @@
11
<?php
2-
// phpcs:ignoreFile
32

43
namespace AutomateWoo;
54

6-
if ( ! defined( 'ABSPATH' ) ) exit;
5+
if ( ! defined( 'ABSPATH' ) ) {
6+
exit;
7+
}
78

89
/**
910
* @class Action_Memberships_Change_Plan
1011
* @since 2.8
1112
*/
1213
class Action_Memberships_Change_Plan extends Action_Memberships_Abstract {
1314

15+
/**
16+
* The data items required by the action.
17+
*
18+
* @var array
19+
*/
1420
public $required_data_items = [ 'customer' ];
1521

16-
17-
function load_admin_details() {
22+
/**
23+
* Method to set the action's admin props.
24+
*/
25+
public function load_admin_details() {
1826
parent::load_admin_details();
19-
$this->title = __( "Create / Change Membership Plan For User", 'automatewoo' );
27+
$this->title = __( 'Create / Change Membership Plan For User', 'automatewoo' );
2028
$this->description = __( "Changes the plan of a user's active membership. If no active membership exists a new membership can optionally be created.", 'automatewoo' );
2129
}
2230

23-
24-
function load_fields() {
31+
/**
32+
* Method to load the action's fields.
33+
**/
34+
public function load_fields() {
2535

2636
$plans = Memberships_Helper::get_membership_plans();
2737

@@ -46,17 +56,19 @@ function load_fields() {
4656
$this->add_field( $from_plan );
4757
$this->add_field( $to_plan );
4858
$this->add_field( $allow_create );
49-
5059
}
5160

5261

53-
function run() {
62+
/**
63+
* Runs the action
64+
*/
65+
public function run() {
5466

55-
$customer = $this->workflow->data_layer()->get_customer();
67+
$customer = $this->workflow->data_layer()->get_customer();
5668
$existing_plan_id = absint( $this->get_option( 'from_plan' ) );
57-
$new_plan_id = absint( $this->get_option( 'to_plan' ) );
58-
$allow_create = $this->get_option( 'allow_create' );
59-
$new_plan = $new_plan_id ? wc_memberships_get_membership_plan( $new_plan_id ) : false;
69+
$new_plan_id = absint( $this->get_option( 'to_plan' ) );
70+
$allow_create = $this->get_option( 'allow_create' );
71+
$new_plan = $new_plan_id ? wc_memberships_get_membership_plan( $new_plan_id ) : false;
6072

6173
if ( ! $customer->is_registered() || ! $new_plan ) {
6274
return;
@@ -73,65 +85,75 @@ function run() {
7385
$membership = $existing_plan_id ? wc_memberships_get_user_membership( $customer->get_user_id(), $existing_plan_id ) : false;
7486

7587
if ( $membership ) {
76-
$this->change_membership_plan( $membership, $new_plan );
77-
}
78-
elseif ( $allow_create ) {
88+
$this->change_membership_plan( $membership, $new_plan );
89+
} elseif ( $allow_create ) {
7990
// if no existing plan and allow create is checked, create a new plan for the user
8091
$this->create_membership( $customer, $new_plan );
8192
}
82-
8393
}
8494

8595

8696
/**
8797
* @param Customer $customer
8898
* @param \WC_Memberships_Membership_Plan $new_plan
8999
*
90-
* @throws \Exception
100+
* @throws \Exception If an error happens creating the membership.
91101
*/
92-
function create_membership( $customer, $new_plan ) {
102+
public function create_membership( $customer, $new_plan ) {
93103

94-
$membership = wc_memberships_create_user_membership([
95-
'user_id' => $customer->get_user_id(),
96-
'plan_id' => $new_plan->get_id(),
97-
]);
104+
$membership = wc_memberships_create_user_membership(
105+
[
106+
'user_id' => $customer->get_user_id(),
107+
'plan_id' => $new_plan->get_id(),
108+
]
109+
);
98110

99111
if ( is_wp_error( $membership ) ) {
100-
throw new \Exception( $membership->get_error_message() );
112+
throw new \Exception( esc_attr( $membership->get_error_message() ) );
101113
}
102114

103115
$membership->add_note(
104-
sprintf(
105-
__( 'Membership created by AutomateWoo workflow #%s', 'automatewoo' ),
106-
$this->workflow->get_id()
116+
esc_textarea(
117+
sprintf(
118+
// translators: The Workflow ID
119+
__( 'Membership created by AutomateWoo workflow #%s', 'automatewoo' ),
120+
$this->workflow->get_id()
121+
)
107122
)
108123
);
109124

110-
$this->workflow->log_action_note( $this, sprintf(
111-
__( 'Membership #%s successfully created.', 'automatewoo' ),
112-
$membership->get_id()
113-
));
125+
$this->workflow->log_action_note(
126+
$this,
127+
sprintf(
128+
// translators: The Membership ID
129+
__( 'Membership #%s successfully created.', 'automatewoo' ),
130+
$membership->get_id()
131+
)
132+
);
114133
}
115134

116135

117136
/**
118137
* @param \WC_Memberships_User_Membership $membership
119138
* @param \WC_Memberships_Membership_Plan $new_plan
120139
*/
121-
function change_membership_plan( $membership, $new_plan ) {
140+
public function change_membership_plan( $membership, $new_plan ) {
122141

123142
$membership->add_note(
124143
sprintf(
125-
__( 'Membership plan changed from %s to %s by AutomateWoo workflow:#%s', 'automatewoo' ),
144+
// translators: %1$s The Membership plan name, %2$s the new plan name, %3$s The Workflow ID
145+
__( 'Membership plan changed from %1$s to %2$s by AutomateWoo workflow:#%3$s', 'automatewoo' ),
126146
$membership->get_plan()->get_name(),
127147
$new_plan->get_name(),
128148
$this->workflow->get_id()
129149
)
130150
);
131151

132-
wp_update_post([
133-
'ID' => $membership->get_id(),
134-
'post_parent' => $new_plan->get_id()
135-
]);
152+
wp_update_post(
153+
[
154+
'ID' => $membership->get_id(),
155+
'post_parent' => $new_plan->get_id(),
156+
]
157+
);
136158
}
137159
}
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,38 @@
11
<?php
2-
// phpcs:ignoreFile
3-
42
namespace AutomateWoo;
53

6-
if ( ! defined( 'ABSPATH' ) ) exit;
4+
if ( ! defined( 'ABSPATH' ) ) {
5+
exit;
6+
}
77

88
/**
99
* @class Action_Memberships_Delete_User_Membership
1010
* @since 2.9
1111
*/
1212
class Action_Memberships_Delete_User_Membership extends Action_Memberships_Abstract {
1313

14+
/**
15+
* The data items required by the action.
16+
*
17+
* @var array
18+
*/
1419
public $required_data_items = [ 'customer' ];
1520

1621

17-
function load_admin_details() {
22+
/**
23+
* Method to set the action's admin props.
24+
*
25+
* Admin props include: title, group and description.
26+
*/
27+
public function load_admin_details() {
1828
parent::load_admin_details();
19-
$this->title = __( "Delete Membership For User", 'automatewoo' );
29+
$this->title = __( 'Delete Membership For User', 'automatewoo' );
2030
}
2131

22-
23-
function load_fields() {
32+
/**
33+
* Method to load the action's fields.
34+
*/
35+
public function load_fields() {
2436

2537
$plans = Memberships_Helper::get_membership_plans();
2638

@@ -31,17 +43,18 @@ function load_fields() {
3143
->set_required();
3244

3345
$this->add_field( $plan );
34-
3546
}
3647

3748

3849
/**
39-
* @throws \Exception
50+
* Run the action
51+
*
52+
* @throws \Exception When an error happens.
4053
*/
41-
function run() {
54+
public function run() {
4255

4356
$customer = $this->workflow->data_layer()->get_customer();
44-
$plan_id = absint( $this->get_option( 'plan' ) );
57+
$plan_id = absint( $this->get_option( 'plan' ) );
4558

4659
if ( ! $customer->is_registered() || ! $plan_id ) {
4760
return;
@@ -59,11 +72,11 @@ function run() {
5972
$success = wp_delete_post( $membership_id, true );
6073

6174
if ( $success ) {
75+
// translators: The Membership ID
6276
$this->workflow->log_action_note( $this, sprintf( __( 'Deleted membership #%s', 'automatewoo' ), $membership_id ) );
63-
}
64-
else {
65-
throw new \Exception( sprintf( __( 'Failed deleting membership #%s', 'automatewoo' ), $membership_id ) );
77+
} else {
78+
// translators: The Membership ID
79+
throw new \Exception( esc_textarea( sprintf( __( 'Failed deleting membership #%s', 'automatewoo' ), $membership_id ) ) );
6680
}
6781
}
68-
6982
}

0 commit comments

Comments
 (0)