PluginProbe
YayMail – WooCommerce Email Customizer / 3.4
YayMail – WooCommerce Email Customizer v3.4
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.4, at includes/Helper/ActivePlugin.php

180 lines 6.3 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 if ( ! metadata_exists( 'post', $postID, '_yaymail_email_textLinkColor_settings' ) ) {
42 update_post_meta( $postID, '_yaymail_email_textLinkColor_settings', '#7f54b3' );
43 }
44 if ( ! metadata_exists( 'post', $postID, '_yaymail_email_order_item_title' ) ) {
45 update_post_meta( $postID, '_yaymail_email_order_item_title', $orderItemsTitle );
46 } else {
47 $yaymail_email_order_item_title = get_post_meta( $postID, '_yaymail_email_order_item_title', true );
48 if ( ! empty( $yaymail_email_order_item_title ) && is_array( $yaymail_email_order_item_title ) ) {
49 $merge_yaymail_email_order_item_title = array();
50 foreach ( $orderItemsTitle as $key => $value ) {
51 if ( isset( $yaymail_email_order_item_title[ $key ] ) && '' !== $yaymail_email_order_item_title[ $key ] ) {
52 $merge_yaymail_email_order_item_title[ $key ] = $yaymail_email_order_item_title[ $key ];
53 } else {
54 $merge_yaymail_email_order_item_title[ $key ] = $value;
55 }
56 }
57 update_post_meta( $postID, '_yaymail_email_order_item_title', $merge_yaymail_email_order_item_title );
58 }
59 }
60 if ( ! metadata_exists( 'post', $postID, '_yaymail_email_order_item_download_title' ) ) {
61 update_post_meta( $postID, '_yaymail_email_order_item_download_title', $orderItemsDownloadsTitle );
62 }
63 }
64 }
65
66 if ( ! get_option( 'yaymail_version' ) ) {
67 update_option( 'yaymail_version', YAYMAIL_VERSION );
68 }
69 if ( ! get_option( 'yaymail_direction' ) ) {
70 update_option( 'yaymail_direction', 'ltr' );
71 }
72
73 /*
74 @@@@check key in settingRow whether or not it exists.
75 @@@@note: case when add setting row for element.
76 */
77 $versionCurrent = YAYMAIL_VERSION;
78 $versionOld = get_option( 'yaymail_version' );
79
80 if ( $versionCurrent != $versionOld ) {
81 update_option( 'yaymail_version', YAYMAIL_VERSION );
82 $posts = CustomPostType::getListPostTemplate();
83 if ( count( $posts ) > 0 ) {
84 foreach ( $posts as $post ) {
85 $elements = get_post_meta( $post->ID, '_yaymail_elements', true );
86
87 $defaultElement = new DefaultElement();
88 $defaultDataElements = $defaultElement->defaultDataElement;
89
90 foreach ( $defaultDataElements as $defaultelement ) {
91
92 foreach ( (array) $elements as $keyEl => $element ) {
93 $element_type = isset( $element['type'] ) ? $element['type'] : null;
94 if ( $defaultelement['type'] == $element_type ) {
95 /*
96 @@@ add key default for element
97 */
98 $keyEleDefaus = array();
99 $keyEleDefaus = array_diff_key( $defaultelement, $element );
100 if ( count( $keyEleDefaus ) > 0 ) {
101 $elements[ $keyEl ] = array_merge( $element, $keyEleDefaus );
102 }
103
104 /*
105 @@@ add key default for setting row.
106 @@@ note: when add a field in setting row
107 */
108 $propSettings = array();
109 $propSettings = array_diff_key( $defaultelement['settingRow'], $element['settingRow'] );
110 $lenPropSettings = count( $propSettings );
111 if ( $lenPropSettings > 0 ) {
112 $result = array();
113 $result = array_merge( $element['settingRow'], $propSettings );
114 $elements[ $keyEl ]['settingRow'] = $result;
115 }
116 }
117 }
118 }
119 update_post_meta( $post->ID, '_yaymail_elements', $elements );
120 }
121 }
122 }
123
124 $settingDefault = CustomPostType::templateEnableDisable();
125 $listTemplates = ! empty( $settingDefault ) ? array_keys( $settingDefault ) : array();
126 $settingCurrent = array(
127 'new_order' => 1,
128 'cancelled_order' => 1,
129 'failed_order' => 1,
130 'customer_on_hold_order' => 1,
131 'customer_processing_order' => 1,
132 'customer_completed_order' => 1,
133 'customer_refunded_order' => 1,
134 'customer_invoice' => 0,
135 'customer_note' => 0,
136 'customer_reset_password' => 0,
137 'customer_new_account' => 0,
138 );
139
140 if ( ! empty( $listTemplates ) ) {
141 foreach ( $settingCurrent as $key => $value ) {
142 if ( in_array( $key, $listTemplates )
143 && ! metadata_exists( 'post', $settingDefault[ $key ]['post_id'], '_yaymail_status' )
144 ) {
145 update_post_meta( $settingDefault[ $key ]['post_id'], '_yaymail_status', $value );
146 }
147 }
148 }
149 }
150 public function addDefaultSetting() {
151 $settings_default = array(
152 'payment' => 2,
153 'product_image' => 0,
154 'image_size' => 'thumbnail',
155 'image_width' => '30px',
156 'image_height' => '30px',
157 'product_sku' => 1,
158 'product_des' => 0,
159 'product_hyper_links' => 0,
160 'product_regular_price' => 0,
161 'product_item_cost' => 0,
162 'background_color_table_items' => '#e5e5e5',
163 'content_items_color' => '#636363',
164 'title_items_color' => '#7f54b3',
165 'container_width' => '605px',
166 'order_url' => '',
167 'custom_css' => '',
168 'enable_css_custom' => 'no',
169 'direction_rtl' => 'ltr',
170 );
171 if ( ! get_option( 'yaymail_settings' ) ) {
172 update_option( 'yaymail_settings', $settings_default );
173 } else {
174 $yaymail_settings_option = get_option( 'yaymail_settings' );
175 $merge_yaymail_settings_option = array_merge( $settings_default, $yaymail_settings_option );
176 update_option( 'yaymail_settings', $merge_yaymail_settings_option );
177 }
178 }
179 }
180