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;