PluginProbe
YayMail – WooCommerce Email Customizer / 3.3
YayMail – WooCommerce Email Customizer v3.3
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 / includes / Helper / ActivePlugin.php

ActivePlugin.php in YayMail – WooCommerce Email Customizer 3.3, at includes/Helper/ActivePlugin.php

194 lines 7.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace YayMail\Helper;
4
5 use YayMail\Page\Source\CustomPostType;
6 use YayMail\Page\Source\DefaultElement;
7 use YayMail\Templates\Templates;
8 use YayMail\Helper\Helper;
9
10 defined( 'ABSPATH' ) || exit;
11 /**
12 * Plugin activate/deactivate logic
13 */
14 class ActivePlugin {
15
16 protected static $instance = null;
17 public static function getInstance() {
18 if ( null == self::$instance ) {
19 self::$instance = new self();
20 }
21
22 return self::$instance;
23 }
24
25 private function __construct() {
26 if ( function_exists( 'WC' ) ) {
27 $this->activePlugin();
28 }
29 $this->addDefaultSetting();
30 }
31
32 public function activePlugin() {
33 $templateEmail = Templates::getInstance();
34 $templates = $templateEmail::getList();
35 $orderItemsTitle = Helper::OrderItemsTitle();
36 $orderItemsDownloadsTitle = Helper::OrderItemsDownloadsTitle();
37
38 foreach ( $templates as $key => $template ) {
39 $postID = CustomPostType::postIDByTemplate( $key );
40 if ( ! $postID ) {
41 $arr = array(
42 'mess' => '',
43 'post_date' => current_time( 'Y-m-d H:i:s' ),
44 'post_type' => 'yaymail_template',
45 'post_status' => 'publish',
46 '_yaymail_template' => $key,
47 '_email_backgroundColor_settings' => 'rgb(236, 236, 236)',
48 '_yaymail_elements' => json_decode( $template['elements'], true ),
49 '_yaymail_email_textLinkColor_settings' => '#7f54b3',
50 '_yaymail_email_order_item_title' => $orderItemsTitle,
51 '_yaymail_email_order_item_download_title' => $orderItemsDownloadsTitle,
52 );
53 $insert = CustomPostType::insert( $arr );
54 } else {
55 if ( ! metadata_exists( 'post', $postID, '_yaymail_email_textLinkColor_settings' ) ) {
56 update_post_meta( $postID, '_yaymail_email_textLinkColor_settings', '#7f54b3' );
57 }
58 if ( ! metadata_exists( 'post', $postID, '_yaymail_email_order_item_title' ) ) {
59 update_post_meta( $postID, '_yaymail_email_order_item_title', $orderItemsTitle );
60 } else {
61 $yaymail_email_order_item_title = get_post_meta( $postID, '_yaymail_email_order_item_title', true );
62 if ( ! empty( $yaymail_email_order_item_title ) && is_array( $yaymail_email_order_item_title ) ) {
63 $merge_yaymail_email_order_item_title = array();
64 foreach ( $orderItemsTitle as $key => $value ) {
65 if ( isset( $yaymail_email_order_item_title[ $key ] ) && '' !== $yaymail_email_order_item_title[ $key ] ) {
66 $merge_yaymail_email_order_item_title[ $key ] = $yaymail_email_order_item_title[ $key ];
67 } else {
68 $merge_yaymail_email_order_item_title[ $key ] = $value;
69 }
70 }
71 update_post_meta( $postID, '_yaymail_email_order_item_title', $merge_yaymail_email_order_item_title );
72 }
73 }
74 if ( ! metadata_exists( 'post', $postID, '_yaymail_email_order_item_download_title' ) ) {
75 update_post_meta( $postID, '_yaymail_email_order_item_download_title', $orderItemsDownloadsTitle );
76 }
77 }
78 }
79
80 if ( ! get_option( 'yaymail_version' ) ) {
81 update_option( 'yaymail_version', YAYMAIL_VERSION );
82 }
83 if ( ! get_option( 'yaymail_direction' ) ) {
84 update_option( 'yaymail_direction', 'ltr' );
85 }
86
87 /*
88 @@@@check key in settingRow whether or not it exists.
89 @@@@note: case when add setting row for element.
90 */
91 $versionCurrent = YAYMAIL_VERSION;
92 $versionOld = get_option( 'yaymail_version' );
93
94 if ( $versionCurrent != $versionOld ) {
95 update_option( 'yaymail_version', YAYMAIL_VERSION );
96 $posts = CustomPostType::getListPostTemplate();
97 if ( count( $posts ) > 0 ) {
98 foreach ( $posts as $post ) {
99 $elements = get_post_meta( $post->ID, '_yaymail_elements', true );
100
101 $defaultElement = new DefaultElement();
102 $defaultDataElements = $defaultElement->defaultDataElement;
103
104 foreach ( $defaultDataElements as $defaultelement ) {
105
106 foreach ( (array) $elements as $keyEl => $element ) {
107 $element_type = isset( $element['type'] ) ? $element['type'] : null;
108 if ( $defaultelement['type'] == $element_type ) {
109 /*
110 @@@ add key default for element
111 */
112 $keyEleDefaus = array();
113 $keyEleDefaus = array_diff_key( $defaultelement, $element );
114 if ( count( $keyEleDefaus ) > 0 ) {
115 $elements[ $keyEl ] = array_merge( $element, $keyEleDefaus );
116 }
117
118 /*
119 @@@ add key default for setting row.
120 @@@ note: when add a field in setting row
121 */
122 $propSettings = array();
123 $propSettings = array_diff_key( $defaultelement['settingRow'], $element['settingRow'] );
124 $lenPropSettings = count( $propSettings );
125 if ( $lenPropSettings > 0 ) {
126 $result = array();
127 $result = array_merge( $element['settingRow'], $propSettings );
128 $elements[ $keyEl ]['settingRow'] = $result;
129 }
130 }
131 }
132 }
133 update_post_meta( $post->ID, '_yaymail_elements', $elements );
134 }
135 }
136 }
137
138 $settingDefault = CustomPostType::templateEnableDisable();
139 $listTemplates = ! empty( $settingDefault ) ? array_keys( $settingDefault ) : array();
140 $settingCurrent = array(
141 'new_order' => 1,
142 'cancelled_order' => 1,
143 'failed_order' => 1,
144 'customer_on_hold_order' => 1,
145 'customer_processing_order' => 1,
146 'customer_completed_order' => 1,
147 'customer_refunded_order' => 1,
148 'customer_invoice' => 0,
149 'customer_note' => 0,
150 'customer_reset_password' => 0,
151 'customer_new_account' => 0,
152 );
153
154 if ( ! empty( $listTemplates ) ) {
155 foreach ( $settingCurrent as $key => $value ) {
156 if ( in_array( $key, $listTemplates )
157 && ! metadata_exists( 'post', $settingDefault[ $key ]['post_id'], '_yaymail_status' )
158 ) {
159 update_post_meta( $settingDefault[ $key ]['post_id'], '_yaymail_status', $value );
160 }
161 }
162 }
163 }
164 public function addDefaultSetting() {
165 $settings_default = array(
166 'payment' => 2,
167 'product_image' => 0,
168 'image_size' => 'thumbnail',
169 'image_width' => '30px',
170 'image_height' => '30px',
171 'product_sku' => 1,
172 'product_des' => 0,
173 'product_hyper_links' => 0,
174 'product_regular_price' => 0,
175 'product_item_cost' => 0,
176 'background_color_table_items' => '#e5e5e5',
177 'content_items_color' => '#636363',
178 'title_items_color' => '#7f54b3',
179 'container_width' => '605px',
180 'order_url' => '',
181 'custom_css' => '',
182 'enable_css_custom' => 'no',
183 'direction_rtl' => 'ltr',
184 );
185 if ( ! get_option( 'yaymail_settings' ) ) {
186 update_option( 'yaymail_settings', $settings_default );
187 } else {
188 $yaymail_settings_option = get_option( 'yaymail_settings' );
189 $merge_yaymail_settings_option = array_merge( $settings_default, $yaymail_settings_option );
190 update_option( 'yaymail_settings', $merge_yaymail_settings_option );
191 }
192 }
193 }
194