PluginProbe
YayMail – WooCommerce Email Customizer / 4.4.0
YayMail – WooCommerce Email Customizer v4.4.0
4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 3.4.2 3.4.3 All 55 releases
yaymail / src / Shortcodes / CommonShortcodes.php

CommonShortcodes.php in YayMail – WooCommerce Email Customizer 4.4.0, at src/Shortcodes/CommonShortcodes.php

344 lines 13.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace YayMail\Shortcodes;
4
5 use YayMail\Abstracts\BaseShortcode;
6 use YayMail\Utils\Helpers;
7 use YayMail\Utils\TemplateHelpers;
8 use YayMail\Utils\SingletonTrait;
9
10 /**
11 * @method: static CommonShortcodes get_instance()
12 */
13 class CommonShortcodes extends BaseShortcode {
14
15 use SingletonTrait;
16
17 public $available_email_ids = [ YAYMAIL_ALL_EMAILS ];
18
19 public function get_shortcodes() {
20 $shortcodes = [
21 [
22 'name' => 'yaymail_site_name',
23 'description' => __( 'Site Name', 'yaymail' ),
24 'group' => 'general',
25 'callback' => [ $this, 'yaymail_site_name' ],
26 ],
27 [
28 'name' => 'yaymail_site_link',
29 'description' => __( 'Site Link', 'yaymail' ),
30 'attributes' => [
31 'text_link' => __( 'Home URL', 'yaymail' ),
32 ],
33 'group' => 'general',
34 'callback' => [ $this, 'yaymail_site_link' ],
35 ],
36 [
37 'name' => 'yaymail_site_url',
38 'description' => __( 'Site URL (String)', 'yaymail' ),
39 'group' => 'general',
40 'callback' => [ $this, 'yaymail_site_url' ],
41 ],
42 [
43 'name' => 'yaymail_domain',
44 'description' => __( 'Domain', 'yaymail' ),
45 'group' => 'general',
46 'callback' => [ $this, 'yaymail_domain' ],
47 ],
48 [
49 'name' => 'yaymail_user_account_link',
50 'description' => __( 'User Account Link', 'yaymail' ),
51 'attributes' => [
52 'text_link' => __( 'My Account', 'yaymail' ),
53 ],
54 'group' => 'general',
55 'callback' => [ $this, 'yaymail_user_account_link' ],
56 ],
57 [
58 'name' => 'yaymail_user_account_url',
59 'description' => __( 'User Account URL (String)', 'yaymail' ),
60 'group' => 'general',
61 'callback' => [ $this, 'yaymail_user_account_url' ],
62 ],
63 [
64 'name' => 'yaymail_user_email',
65 'description' => __( 'User Email', 'yaymail' ),
66 'group' => 'general',
67 'callback' => [ $this, 'yaymail_user_email' ],
68 ],
69 [
70 'name' => 'yaymail_user_id',
71 'description' => __( 'User ID', 'yaymail' ),
72 'group' => 'general',
73 'callback' => [ $this, 'yaymail_user_id' ],
74 ],
75 [
76 'name' => 'yaymail_customer_username',
77 'description' => __( 'Username', 'yaymail' ),
78 'group' => 'general',
79 'callback' => [ $this, 'yaymail_customer_username' ],
80 ],
81 [
82 'name' => 'yaymail_customer_name',
83 'description' => __( 'Name', 'yaymail' ),
84 'group' => 'general',
85 'callback' => [ $this, 'yaymail_customer_name' ],
86 ],
87 [
88 'name' => 'yaymail_customer_first_name',
89 'description' => __( 'First Name', 'yaymail' ),
90 'group' => 'general',
91 'callback' => [ $this, 'yaymail_customer_first_name' ],
92 ],
93 [
94 'name' => 'yaymail_customer_last_name',
95 'description' => __( 'Last Name', 'yaymail' ),
96 'group' => 'general',
97 'callback' => [ $this, 'yaymail_customer_last_name' ],
98 ],
99 [
100 'name' => 'yaymail_get_heading',
101 'description' => __( 'Email heading', 'yaymail' ),
102 'group' => 'general',
103 'callback' => [ $this, 'yaymail_get_heading' ],
104 ],
105 [
106 'name' => 'yaymail_additional_content',
107 'description' => __( 'Additional Content', 'yaymail' ),
108 'group' => 'general',
109 'callback' => [ $this, 'yaymail_additional_content' ],
110 ],
111 ];
112
113 return apply_filters( 'yaymail_common_shortcodes', $shortcodes );
114 }
115
116 public function yaymail_site_name() {
117 return esc_html( get_bloginfo( 'name' ) );
118 }
119
120 public function yaymail_site_link( $data, $shortcode_atts = [] ) {
121 $is_placeholder = isset( $data['is_placeholder'] ) ? $data['is_placeholder'] : false;
122
123 $text_link = isset( $shortcode_atts['text_link'] ) ? $shortcode_atts['text_link'] : TemplateHelpers::get_content_as_placeholder( 'text_link', __( 'Home URL', 'yaymail' ), $is_placeholder );
124
125 return '<a href="' . esc_url( get_home_url() ) . '"> ' . $text_link . ' </a>';
126 }
127
128 public function yaymail_site_url() {
129 return esc_url( get_home_url() );
130 }
131
132 public function yaymail_domain() {
133 if ( ! empty( wp_parse_url( get_site_url() )['host'] ) ) {
134 return wp_parse_url( get_site_url() )['host'];
135 } return '';
136 }
137
138 public function yaymail_user_account_link( $data, $shortcode_atts = [] ) {
139 $is_placeholder = isset( $data['is_placeholder'] ) ? $data['is_placeholder'] : false;
140
141 $text_link = isset( $shortcode_atts['text_link'] ) ? $shortcode_atts['text_link'] : TemplateHelpers::get_content_as_placeholder( 'text_link', __( 'My Account', 'yaymail' ), $is_placeholder );
142
143 return '<a href="' . esc_url( function_exists( 'WC' ) && defined( 'YAYMAIL_VERSION' ) ? wc_get_page_permalink( 'myaccount' ) : '' ) . '"> ' . $text_link . ' </a>';
144 }
145
146 public function yaymail_user_account_url() {
147 return esc_url( function_exists( 'WC' ) && defined( 'YAYMAIL_VERSION' ) ? wc_get_page_permalink( 'myaccount' ) : '' );
148 }
149
150 public function yaymail_user_email( $data ) {
151
152 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
153
154 if ( ! empty( $render_data['is_sample'] ) ) {
155 return 'johndoe@gmail.com';
156 }
157
158 $order = Helpers::get_order_from_shortcode_data( $render_data );
159 if ( empty( $order ) ) {
160 if ( isset( $render_data['email'] ) && isset( $render_data['email']->user_email ) ) {
161 return $render_data['email']->user_email;
162 }
163 $user = wp_get_current_user();
164 return ! empty( $user ) ? $user->data->user_email : '';
165 } else {
166 $user = $order->get_user();
167 if ( ! empty( $user ) && ! empty( $user->user_email ) ) {
168 return $user->user_email;
169 } else {
170 return $order->get_billing_email();
171 }
172 }
173 }
174
175 public function yaymail_user_id( $data ) {
176
177 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
178
179 if ( ! empty( $render_data['is_sample'] ) ) {
180 return '0';
181 }
182
183 $order = Helpers::get_order_from_shortcode_data( $render_data );
184 if ( empty( $order ) ) {
185 if ( isset( $render_data['email'] ) && isset( $render_data['email']->object ) ) {
186 if ( $render_data['email']->object instanceof \WP_User ) {
187 return $render_data['email']->object->ID;
188 }
189 }
190 $user = wp_get_current_user();
191 return ! empty( $user ) ? $user->ID : '0';
192 } else {
193 $user = $order->get_user();
194 if ( ! empty( $user ) && ! empty( $user->ID ) ) {
195 return $user->ID;
196 } else {
197 $user = get_user_by( 'email', $order->get_billing_email() );
198 if ( ! empty( $user ) && ! empty( $user->ID ) ) {
199 return $user->ID;
200 }
201 return '';
202 }
203 }
204 }
205
206 public function yaymail_customer_username( $data ) {
207 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
208
209 if ( ! empty( $render_data['is_sample'] ) ) {
210 return 'johndoe';
211 }
212
213 $order = Helpers::get_order_from_shortcode_data( $render_data );
214 if ( empty( $order ) ) {
215 if ( isset( $render_data['email'] ) && isset( $render_data['email']->user_login ) ) {
216 return $render_data['email']->user_login;
217 }
218 $user = wp_get_current_user();
219 return ! empty( $user ) ? $user->user_login : '';
220 } else {
221 $user = $order->get_user();
222 if ( ! empty( $user ) && ! empty( $user->user_login ) ) {
223 return $user->user_login;
224 } else {
225 $user = get_user_by( 'email', $order->get_billing_email() );
226 if ( ! empty( $user ) && ! empty( $user->user_login ) ) {
227 return $user->user_login;
228 }
229 return '';
230 }
231 }
232 }
233
234 public function yaymail_customer_name( $data ) {
235 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
236
237 if ( ! empty( $render_data['is_sample'] ) ) {
238 return 'John Doe';
239 }
240 $order = Helpers::get_order_from_shortcode_data( $render_data );
241 if ( empty( $order ) ) {
242 if ( isset( $render_data['email'] ) && isset( $render_data['email']->user_email ) ) {
243 $user = get_user_by( 'email', $render_data['email']->user_email );
244 } else {
245 $user = wp_get_current_user();
246 }
247 if ( ! empty( $user ) ) {
248 $name = get_user_meta( $user->ID, 'first_name', true ) . ' ' . get_user_meta( $user->ID, 'last_name', true );
249 return ' ' !== $name ? $name : $user->user_nicename;
250 }
251 return '';
252 } else {
253 $user = $order->get_user();
254 if ( ! empty( $user ) ) {
255 $name = get_user_meta( $user->ID, 'first_name', true ) . ' ' . get_user_meta( $user->ID, 'last_name', true );
256 if ( ' ' === $name ) {
257 $name = $user->user_nicename;
258 }
259 }
260 if ( empty( $name ) ) {
261 $name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();
262 }
263 return ! empty( $name ) ? $name : '';
264 }//end if
265 }
266
267 public function yaymail_customer_first_name( $data ) {
268 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
269 if ( ! empty( $render_data['is_sample'] ) ) {
270 return 'John';
271 }
272 $order = Helpers::get_order_from_shortcode_data( $render_data );
273 if ( empty( $order ) ) {
274 if ( isset( $render_data['email'] ) && isset( $render_data['email']->user_email ) ) {
275 $user = get_user_by( 'email', $render_data['email']->user_email );
276 } else {
277 $user = wp_get_current_user();
278 }
279 if ( ! empty( $user ) ) {
280 return get_user_meta( $user->ID, 'first_name', true );
281 }
282 return '';
283 } else {
284 $user = $order->get_user();
285 if ( ! empty( $user ) ) {
286 $name = get_user_meta( $user->ID, 'first_name', true );
287 }
288 if ( empty( $name ) ) {
289 $name = $order->get_billing_first_name();
290 }
291 return $name;
292 }
293 }
294
295 public function yaymail_customer_last_name( $data ) {
296 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
297 if ( ! empty( $render_data['is_sample'] ) ) {
298 return 'Doe';
299 }
300 $order = Helpers::get_order_from_shortcode_data( $render_data );
301 if ( empty( $order ) ) {
302 if ( isset( $render_data['email'] ) && isset( $render_data['email']->user_email ) ) {
303 $user = get_user_by( 'email', $render_data['email']->user_email );
304 } else {
305 $user = wp_get_current_user();
306 }
307 if ( ! empty( $user ) ) {
308 return get_user_meta( $user->ID, 'last_name', true );
309 }
310 return '';
311 } else {
312 $user = $order->get_user();
313 if ( ! empty( $user ) ) {
314 $name = get_user_meta( $user->ID, 'last_name', true );
315 }
316 if ( empty( $name ) ) {
317 $name = $order->get_billing_last_name();
318 }
319 return $name;
320 }
321 }
322
323 public function yaymail_get_heading( $data ) {
324 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
325 if ( isset( $render_data['email_heading'] ) ) {
326 return $render_data['email_heading'];
327 } else {
328 $order = Helpers::get_order_from_shortcode_data( $render_data );
329 if ( ! empty( $order ) && isset( $render_data['email'] ) && 'customer_refunded_order' === $render_data['email']->id ) {
330 return 'Order Refunded: ' . ! empty( $order ) ? $order->get_id() : '1';
331 }
332 }
333 return __( 'Email heading', 'yaymail' );
334 }
335
336 public function yaymail_additional_content( $data ) {
337 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
338 if ( isset( $render_data['additional_content'] ) ) {
339 return wpautop( wptexturize( $render_data['additional_content'] ) );
340 }
341 return __( 'Additional content', 'yaymail' );
342 }
343 }
344