pluginVersion = $pluginVersion; return $this; } public function setPluginDbVersion($pluginDbVersion) { $this->pluginDbVersion = $pluginDbVersion; return $this; } public function update() { // update to 5.0.6 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.0.6', '<')) { $this->update_5_0_6(); } // update to 5.0.11 if (!$this->pluginDbVersion || version_compare($this->pluginDbVersion, '5.0.11', '<')) { $this->update_5_0_11(); } // update to 5.0.13 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.0.13', '<')) { $this->update_5_0_13(); } // update to 5.1.0 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.1.0', '<')) { $this->update_5_1_0(); } // update to 5.1.5 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.1.5', '<')) { $this->update_5_1_5(); } // update to 5.1.11 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.1.11', '<')) { $this->update_5_1_11(); } // update to 5.2.4 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.2.4', '<')) { $this->update_5_2_4(); } // update to 5.2.5 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.2.5', '<')) { $this->update_5_2_5(); } // update to 5.2.6 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.2.6', '<')) { $this->update_5_2_6(); } // update to 5.2.8 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.2.8', '<')) { $this->update_5_2_8(); } // update to 5.2.9 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.2.9', '<')) { $this->update_5_2_9(); } // update to 5.3.8 if ($this->pluginDbVersion && version_compare($this->pluginDbVersion, '5.3.8', '<')) { $this->update_5_3_8(); } $this->fixCurrentPluginVersion(); } public function update_5_0_11() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); if (empty($settings['product_pages_info_text'])) { $settings['product_pages_info_text'] = 'or 6 weekly interest-free payments from [AMOUNT] with [laybuy_logo] what\'s this?'; } if (empty($settings['category_pages_info_text'])) { $settings['category_pages_info_text'] = 'or 6 weekly interest-free payments from [AMOUNT] with [laybuy_logo]'; } if (empty($settings['cart_page_info_text'])) { $settings['cart_page_info_text'] = 'or 6 weekly interest-free payments from [AMOUNT] with [laybuy_logo link=https://www.laybuy.com]what\'s this?'; } if (empty($settings['checkout_page_info_text'])) { $settings['checkout_page_info_text'] = '

Pay it in 6 weekly, interest-free payments from [AMOUNT]

'; } update_option('woocommerce_laybuy_settings', $settings); } public function update_5_0_6() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['sandbox_global_merchant_id'] = ''; $settings['sandbox_global_api_key'] = ''; $settings['production_global_merchant_id'] = ''; $settings['production_global_api_key'] = ''; $settings['global'] = 'yes'; $settings['currency'] = []; $currencies = ['NZD', 'AUD', 'GBP', 'USD']; $activeCurrencies = []; $apiProductionKeys = []; $apiSandboxKeys = []; foreach ($currencies as $currency) { if ( !empty($settings["production_{$currency}_api_key"]) || !empty($settings["sandbox_{$currency}_api_key"]) ) { $activeCurrencies[] = $currency; } if (!empty($settings["production_{$currency}_api_key"])) { $apiProductionKeys[$settings["production_{$currency}_merchant_id"]] = $settings["production_{$currency}_api_key"]; } if (!empty($settings["sandbox_{$currency}_api_key"])) { $apiSandboxKeys[$settings["sandbox_{$currency}_merchant_id"]] = $settings["sandbox_{$currency}_api_key"]; } } if (count(array_unique($apiProductionKeys)) == 1) { $settings['production_global_merchant_id'] = key($apiProductionKeys); $settings['production_global_api_key'] = $apiProductionKeys[key($apiProductionKeys)]; } if (count(array_unique($apiSandboxKeys)) == 1) { $settings['sandbox_global_merchant_id'] = key($apiSandboxKeys); $settings['sandbox_global_api_key'] = $apiSandboxKeys[key($apiSandboxKeys)]; } if ( count(array_unique($apiProductionKeys)) > 1 || count(array_unique($apiSandboxKeys)) > 1 ) { $settings['global'] = 'no'; } $settings['currency'] = $activeCurrencies; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_0_13() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['cart_page_info_text'] = 'or 6 weekly interest-free payments from [AMOUNT] with [laybuy_logo link=https://www.laybuy.com]what\'s this?'; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_1_0() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['laybuy_compatibility_mode'] = 'no'; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_1_5() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['NZD_pay_limit_min'] = 0.06; $settings['NZD_pay_limit_max'] = 1500; $settings['AUD_pay_limit_min'] = 0.06; $settings['AUD_pay_limit_max'] = 1200; $settings['GBP_pay_limit_min'] = 0.06; $settings['GBP_pay_limit_max'] = 720; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_1_11() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['product_price_breakdown_hook_priority'] = 11; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_2_4() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['laybuy_geolocate_ip'] = 'no'; $settings['laybuy_logo_theme'] = 'white'; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_2_5() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['sandbox_USD_merchant_id'] = ''; $settings['sandbox_USD_api_key'] = ''; $settings['production_USD_merchant_id'] = ''; $settings['production_USD_api_key'] = ''; $settings['USD_pay_limit_min'] = 0.06; $settings['USD_pay_limit_max'] = 1200; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_2_6() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $product_types = []; foreach (wc_get_product_types() as $value => $label) { $product_types[] = $value; } $settings['product_types'] = $product_types; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_2_8() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['laybuy_price_breakdown_out_of_stock'] = 'no'; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_2_9() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['laybuy_billing_phone_field'] = 'billing_phone'; update_option('woocommerce_laybuy_settings', $settings); } public function update_5_3_8() { $settings = (array) get_option( 'woocommerce_laybuy_settings', true ); $settings['product_pages_info_text'] = 'or 6 weekly interest-free payments from [AMOUNT] with [laybuy_logo]'; $settings['category_pages_info_text'] = 'or 6 weekly interest-free payments from [AMOUNT] with [laybuy_logo]'; $settings['cart_page_info_text'] = 'or 6 weekly interest-free payments from [AMOUNT] with [laybuy_logo link=https://www.laybuy.com]'; $settings['checkout_page_info_text'] = '

Pay it in 6 weekly, interest-free payments from [AMOUNT]

'; update_option('woocommerce_laybuy_settings', $settings); } public function fixCurrentPluginVersion() { if (version_compare($this->pluginDbVersion, $this->pluginVersion, '<')) { update_option('wc_laybuy_version', $this->pluginVersion); } } }