support.", 'wf-address-autocomplete-validation' ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } } register_activation_hook( __FILE__, 'Elex_wf_address_validation_basic_pre_activation_check' ); if ( ! function_exists( 'Elex_woocommerce_version_check' ) ) { /** Woocommerce active check */ function Elex_woocommerce_version_check() { if ( ! defined( 'WC_VERSION' ) ) { define( 'WC_VERSION', WC()->version ); } } } add_action( 'admin_init', 'Elex_woocommerce_version_check' ); require_once ABSPATH . 'wp-admin/includes/plugin.php'; 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; /** 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() { return version_compare( WC()->version, '1.0', '>=' ) ? 'wc-settings' : 'woocommerce_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 { add_action( 'admin_notices', 'elex_basic_address_woocommerce_inactive_notice' ); return; } /** Function to notify if woocommerce is active */ function elex_basic_address_woocommerce_inactive_notice() { ?>