pro = require_once( 'pro/class-alg-wc-ean-pro.php' ); } // Include required files $this->includes(); // Admin if ( is_admin() ) { $this->admin(); } } /** * localize. * * @version 2.2.0 * @since 2.0.0 */ function localize() { load_plugin_textdomain( 'ean-for-woocommerce', false, dirname( plugin_basename( ALG_WC_EAN_FILE ) ) . '/langs/' ); } /** * wc_declare_compatibility. * * @version 4.7.3 * @since 4.5.0 * * @see https://github.com/woocommerce/woocommerce/wiki/High-Performance-Order-Storage-Upgrade-Recipe-Book#declaring-extension-incompatibility */ function wc_declare_compatibility() { if ( class_exists( '\Automattic\WooCommerce\Utilities\FeaturesUtil' ) ) { $files = ( defined( 'ALG_WC_EAN_FILE_FREE' ) ? array( ALG_WC_EAN_FILE, ALG_WC_EAN_FILE_FREE ) : array( ALG_WC_EAN_FILE ) ); foreach ( $files as $file ) { \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', $file, true ); } } } /** * includes. * * @version 2.2.0 * @since 1.0.0 */ function includes() { $this->core = require_once( 'class-alg-wc-ean-core.php' ); } /** * admin. * * @version 2.2.0 * @since 1.0.0 */ function admin() { // Action links add_filter( 'plugin_action_links_' . plugin_basename( ALG_WC_EAN_FILE ), array( $this, 'action_links' ) ); // Settings add_filter( 'woocommerce_get_settings_pages', array( $this, 'add_woocommerce_settings_tab' ) ); // Version update if ( get_option( 'alg_wc_ean_version', '' ) !== $this->version ) { add_action( 'admin_init', array( $this, 'version_updated' ) ); } } /** * action_links. * * @version 2.2.0 * @since 1.0.0 * * @param mixed $links * @return array */ function action_links( $links ) { $custom_links = array(); $custom_links[] = '' . __( 'Settings', 'woocommerce' ) . ''; if ( 'ean-for-woocommerce.php' === basename( ALG_WC_EAN_FILE ) ) { $custom_links[] = '' . __( 'Go Pro', 'ean-for-woocommerce' ) . ''; } return array_merge( $custom_links, $links ); } /** * add_woocommerce_settings_tab. * * @version 2.2.0 * @since 1.0.0 */ function add_woocommerce_settings_tab( $settings ) { $settings[] = require_once( 'settings/class-alg-wc-ean-settings.php' ); return $settings; } /** * version_updated. * * @version 2.9.0 * @since 1.0.0 */ function version_updated() { update_option( 'alg_wc_ean_version', $this->version ); /** * Handle deprecated options. * * @deprecated 2.9.0 */ if ( false !== ( $deprecated_options = get_option( 'alg_wc_ean_tool_product_generate_on', false ) ) ) { if ( isset( $deprecated_options['insert_product'] ) && 'yes' === $deprecated_options['insert_product'] ) { update_option( 'alg_wc_ean_tool_product_action_on_new', 'generate' ); } if ( isset( $deprecated_options['update_product'] ) && 'yes' === $deprecated_options['update_product'] ) { update_option( 'alg_wc_ean_tool_product_action_on_update', 'generate' ); } delete_option( 'alg_wc_ean_tool_product_generate_on' ); } } /** * plugin_url. * * @version 2.2.0 * @since 1.0.0 * * @return string */ function plugin_url() { return untrailingslashit( plugin_dir_url( ALG_WC_EAN_FILE ) ); } /** * plugin_path. * * @version 2.2.0 * @since 1.0.0 * * @return string */ function plugin_path() { return untrailingslashit( plugin_dir_path( ALG_WC_EAN_FILE ) ); } } endif;