version ); } } } add_action( 'woocommerce_init', 'Elex_woocommerce_version_check' ); add_action( 'before_woocommerce_init', function () { if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true ); } } ); add_action( 'before_woocommerce_init', function() { if ( class_exists( '\Automattic\WooCommerce\Utilities\FeaturesUtil' ) ) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', __FILE__, false ); } } ); require_once ABSPATH . 'wp-admin/includes/plugin.php'; if ( is_plugin_active( 'address-validation-and-auto-complete-plugin/class-wf-address-autocomplete-validation.php' ) ) { deactivate_plugins( basename( __FILE__ ) ); wp_die( wp_kses_post( __( "You already have the Premium version installed in your website. For any issues, kindly raise a ticket via our support page.", 'wf-address-autocomplete-validation' ) ), '', array( 'back_link' => 1 ) ); } else { if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ) { if ( ! class_exists( 'Elex_Address_Autocomplete_Validation' ) ) { /** Class - To setup the plugin */ class Elex_Address_Autocomplete_Validation { /** * Array of settings stored in database. * * @var array $all_settings Array of settings stored in database. */ protected $all_settings; public $settings; public $selected_api; public $enable_autocomplete_checkout; public $enable_address_validation; /** 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' ) ); } /** Function to check if woocommerce version>1.0. */ public function wf_get_settings_url() { if ( defined( 'WC_VERSION' ) ) { return version_compare( WC_VERSION, '1.0', '>=' ) ? 'wc-settings' : 'woocommerce_settings'; } // Fallback. return 'wc-settings'; } /** * To add settings url near plugin under installed plugin. * * @param array $links Array of Links. */ 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 Elex_Address_Autocomplete_Validation_Settings(); $this->settings->Wf_Address_Autocomplete_Validation_Setup(); $this->selected_api = isset( $this->all_settings['wf_address_autocomplete_restriction'] ) ? $this->all_settings['wf_address_autocomplete_restriction'] : 'none'; $this->enable_autocomplete_checkout = isset( $this->all_settings['wf_aac_enable_google_autocomplete_checkout'] ) ? $this->all_settings['wf_aac_enable_google_autocomplete_checkout'] : 'no'; $this->enable_address_validation = isset( $this->all_settings['xa_address_validation'] ) ? $this->all_settings['xa_address_validation'] : 'none'; if ( 'google' === $this->selected_api && 'yes' === $this->enable_autocomplete_checkout && $this->all_settings['wf_address_autocomplete_validation_google_api_key'] ) { include_once 'includes/class-wf-address-autocomplete.php'; new Elex_Address_Autocomplete(); } if ( 'easypost' === $this->enable_address_validation ) { include_once 'includes/class-wf-address-validation.php'; new Elex_Address_Validation(); include_once 'includes/class-address-validation-log.php'; } } } } } else { ?>