1
1
<?php
2
- // phpcs:ignoreFile
3
2
4
3
namespace AutomateWoo ;
5
4
6
- if ( ! defined ( 'ABSPATH ' ) ) exit ;
5
+ if ( ! defined ( 'ABSPATH ' ) ) {
6
+ exit ;
7
+ }
7
8
8
9
/**
9
10
* @class Action_Memberships_Change_Plan
10
11
* @since 2.8
11
12
*/
12
13
class Action_Memberships_Change_Plan extends Action_Memberships_Abstract {
13
14
15
+ /**
16
+ * The data items required by the action.
17
+ *
18
+ * @var array
19
+ */
14
20
public $ required_data_items = [ 'customer ' ];
15
21
16
-
17
- function load_admin_details () {
22
+ /**
23
+ * Method to set the action's admin props.
24
+ */
25
+ public function load_admin_details () {
18
26
parent ::load_admin_details ();
19
- $ this ->title = __ ( " Create / Change Membership Plan For User " , 'automatewoo ' );
27
+ $ this ->title = __ ( ' Create / Change Membership Plan For User ' , 'automatewoo ' );
20
28
$ this ->description = __ ( "Changes the plan of a user's active membership. If no active membership exists a new membership can optionally be created. " , 'automatewoo ' );
21
29
}
22
30
23
-
24
- function load_fields () {
31
+ /**
32
+ * Method to load the action's fields.
33
+ **/
34
+ public function load_fields () {
25
35
26
36
$ plans = Memberships_Helper::get_membership_plans ();
27
37
@@ -46,17 +56,19 @@ function load_fields() {
46
56
$ this ->add_field ( $ from_plan );
47
57
$ this ->add_field ( $ to_plan );
48
58
$ this ->add_field ( $ allow_create );
49
-
50
59
}
51
60
52
61
53
- function run () {
62
+ /**
63
+ * Runs the action
64
+ */
65
+ public function run () {
54
66
55
- $ customer = $ this ->workflow ->data_layer ()->get_customer ();
67
+ $ customer = $ this ->workflow ->data_layer ()->get_customer ();
56
68
$ 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 ;
60
72
61
73
if ( ! $ customer ->is_registered () || ! $ new_plan ) {
62
74
return ;
@@ -73,65 +85,75 @@ function run() {
73
85
$ membership = $ existing_plan_id ? wc_memberships_get_user_membership ( $ customer ->get_user_id (), $ existing_plan_id ) : false ;
74
86
75
87
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 ) {
79
90
// if no existing plan and allow create is checked, create a new plan for the user
80
91
$ this ->create_membership ( $ customer , $ new_plan );
81
92
}
82
-
83
93
}
84
94
85
95
86
96
/**
87
97
* @param Customer $customer
88
98
* @param \WC_Memberships_Membership_Plan $new_plan
89
99
*
90
- * @throws \Exception
100
+ * @throws \Exception If an error happens creating the membership.
91
101
*/
92
- function create_membership ( $ customer , $ new_plan ) {
102
+ public function create_membership ( $ customer , $ new_plan ) {
93
103
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
+ );
98
110
99
111
if ( is_wp_error ( $ membership ) ) {
100
- throw new \Exception ( $ membership ->get_error_message () );
112
+ throw new \Exception ( esc_attr ( $ membership ->get_error_message () ) );
101
113
}
102
114
103
115
$ 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
+ )
107
122
)
108
123
);
109
124
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
+ );
114
133
}
115
134
116
135
117
136
/**
118
137
* @param \WC_Memberships_User_Membership $membership
119
138
* @param \WC_Memberships_Membership_Plan $new_plan
120
139
*/
121
- function change_membership_plan ( $ membership , $ new_plan ) {
140
+ public function change_membership_plan ( $ membership , $ new_plan ) {
122
141
123
142
$ membership ->add_note (
124
143
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 ' ),
126
146
$ membership ->get_plan ()->get_name (),
127
147
$ new_plan ->get_name (),
128
148
$ this ->workflow ->get_id ()
129
149
)
130
150
);
131
151
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
+ );
136
158
}
137
159
}
0 commit comments