support.", "wf-address-autocomplete-validation"), "", array('back_link' => 1 ));
}
else
{
include_once ('includes/wf_db_migration.php');
}
}
register_activation_hook( __FILE__, 'wf_address_validation_basic_pre_activation_check' );
//check if woocommerce exists
if ( !class_exists( 'woocommerce' ) ) {
add_action( 'admin_init', 'my_plugin_deactivate' );
if ( ! function_exists( 'my_plugin_deactivate' ) ) {
function my_plugin_deactivate() {
if ( !class_exists( 'woocommerce' ) )
{
deactivate_plugins( plugin_basename( __FILE__ ) );
wp_safe_redirect( admin_url('plugins.php') );
}
}}
}
if ( ! function_exists( 'woocommerce_version_check' ) ) {
function woocommerce_version_check(){
if( ! defined( 'WC_VERSION') )
{
define( 'WC_VERSION', (double)WC()->version );
}
}
}
add_action( 'admin_init', 'woocommerce_version_check');
if(!class_exists('Wf_Address_Autocomplete_Validation_Setup')){
//Class - To setup the plugin
class Wf_Address_Autocomplete_Validation_Setup {
protected $all_settings;
//constructor
public function __construct() {
$this->all_settings = get_option('wf_address_autocomplete_validation_settings');
$this->wf_address_autocomplete_validation_init();
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), array( $this, 'wf_address_autocomplete_validation_plugin_action_links' ) );
}
public function wf_get_settings_url(){
return version_compare(WC()->version, '1.0', '>=') ? "wc-settings" : "woocommerce_settings";
}
//to add settings url near plugin under installed plugin
public function wf_address_autocomplete_validation_plugin_action_links( $links ) {
$plugin_links = array(
'' . __( 'Settings', 'wf-address-autocomplete-validation' ) . '',
'' . __( 'Premium Upgrade', 'wf_estimated_delivery' ) . '',
'' . __( 'Support', 'wf-address-autocomplete-validation' ) . '',
);
return array_merge( $plugin_links, $links );
}
//to include the necessary files for plugin
public function wf_address_autocomplete_validation_init() {
include_once( 'includes/class-wf-address-autocomplete-validation-settings.php' );
$this->settings = new Wf_Address_Autocomplete_Validation_Settings();
$this->settings->Wf_Address_Autocomplete_Validation_Setup();
$this->enable_autocomplete = isset($this->all_settings[ 'wf_aac_enable_autocomplete' ]) ? $this->all_settings[ 'wf_aac_enable_autocomplete' ] : '';
$this->enable_address_validation = isset($this->all_settings[ 'xa_address_validation' ]) ? $this->all_settings[ 'xa_address_validation' ] : 'none';
if($this->enable_autocomplete == 'yes' && $this->all_settings['wf_address_autocomplete_validation_google_api_key']){
include_once( 'includes/class-wf-address-autocomplete.php' );
new Wf_Address_Autocomplete();
include_once( 'includes/class-wf-address-php_to_js.php' );
}
if($this->enable_address_validation === 'easypost'){
include_once( 'includes/class-wf-easypost-address-validation.php' );
new Wf_Address_Validation();
include_once( 'includes/lib/easypost.php' );
include_once( 'includes/log.php' );
}
}
}
}
//Execute only on dashboard or on network dashboard
if(is_admin() || is_network_admin())
{
include_once ('includes/wf_db_migration.php'); //To transfer Data from previous database to new database
new Wf_Address_Autocomplete_Validation_Setup();
}
//To execute only on checkout page when visiting any woocommerce site
if( ! function_exists('Wf_Address_Autocomplete_Validation_Setup_call') )
{
function Wf_Address_Autocomplete_Validation_Setup_call(){
if(is_checkout())
{
new Wf_Address_Autocomplete_Validation_Setup();
}
}
}
add_action('woocommerce_checkout_init','Wf_Address_Autocomplete_Validation_Setup_call');