load_plugin_textdomain(); if (class_exists( 'WC_Integration' )) { self::load_module(); add_filter('woocommerce_integrations', array( $this, 'add_integration')); } else { add_action('admin_notices', array($this, 'woocommerce_missing_notice')); } } public function woocommerce_missing_notice() { if (static::isWooCommerceInstalled()) { if (!is_plugin_active(static::WOOCOMMERCE_PLUGIN_PATH)) { echo '

Activate WooCommerce in order to enable retailCRM integration! Click here to open plugins manager

'; } } else { echo '

Install WooCommerce in order to enable retailCRM integration!

'; } } public function load_plugin_textdomain() { load_plugin_textdomain('retailcrm', false, dirname(plugin_basename(__FILE__)) . '/languages/'); } /** * Add a new integration to WooCommerce. * * @param $integrations * * @return array */ public function add_integration( $integrations ) { $integrations[] = 'WC_Retailcrm_Base'; return $integrations; } /** * Loads module classes. */ public static function load_module() { require_once(dirname(__FILE__) . '/include/interfaces/class-wc-retailcrm-builder-interface.php'); require_once(dirname(__FILE__) . '/include/models/class-wc-retailcrm-customer-switcher-state.php'); require_once(dirname(__FILE__) . '/include/models/class-wc-retailcrm-customer-switcher-result.php'); require_once(dirname(__FILE__ ) . '/include/components/class-wc-retailcrm-logger.php'); require_once(dirname(__FILE__ ) . '/include/components/class-wc-retailcrm-history-assembler.php'); require_once(dirname(__FILE__ ) . '/include/components/class-wc-retailcrm-paginated-request.php'); require_once(dirname(__FILE__) . '/include/components/class-wc-retailcrm-customer-switcher.php'); require_once(dirname(__FILE__ ) . '/include/abstracts/class-wc-retailcrm-abstract-builder.php'); require_once(dirname(__FILE__ ) . '/include/abstracts/class-wc-retailcrm-abstracts-settings.php'); require_once(dirname(__FILE__ ) . '/include/abstracts/class-wc-retailcrm-abstracts-data.php'); require_once(dirname(__FILE__ ) . '/include/abstracts/class-wc-retailcrm-abstracts-address.php'); require_once(dirname(__FILE__ ) . '/include/customer/woocommerce/class-wc-retailcrm-wc-customer-builder.php'); require_once(dirname(__FILE__ ) . '/include/order/class-wc-retailcrm-order.php'); require_once(dirname(__FILE__ ) . '/include/order/class-wc-retailcrm-order-payment.php'); require_once(dirname(__FILE__ ) . '/include/order/class-wc-retailcrm-order-item.php'); require_once(dirname(__FILE__ ) . '/include/order/class-wc-retailcrm-order-address.php'); require_once(dirname(__FILE__ ) . '/include/customer/class-wc-retailcrm-customer-address.php'); require_once(dirname(__FILE__ ) . '/include/customer/class-wc-retailcrm-customer-corporate-address.php'); require_once(dirname(__FILE__ ) . '/include/class-wc-retailcrm-base.php'); require_once(dirname(__FILE__ ) . '/include/functions.php'); } /** * Returns true if WooCommerce was found in plugin cache * * @return bool */ private function isWooCommerceInstalled() { $plugins = wp_cache_get( 'plugins', 'plugins' ); if (!$plugins) { $plugins = get_plugins(); } elseif (isset($plugins[''])) { $plugins = $plugins['']; } if (!isset($plugins[static::WOOCOMMERCE_PLUGIN_PATH])) { return false; } return true; } /** * Generate plugin installation url * * @param $pluginSlug * * @return string */ private function generatePluginInstallationUrl($pluginSlug) { $action = 'install-plugin'; return wp_nonce_url( add_query_arg( array( 'action' => $action, 'plugin' => $pluginSlug ), admin_url( 'update.php' ) ), $action.'_'.$pluginSlug ); } } if (!class_exists('WC_Retailcrm_Plugin')) { require_once (dirname(__FILE__) . '/include/class-wc-retailcrm-plugin.php'); } $plugin = WC_Retailcrm_Plugin::getInstance(__FILE__); $plugin->register_activation_hook(); $plugin->register_deactivation_hook(); add_action('plugins_loaded', array('WC_Integration_Retailcrm', 'get_instance'), 0); endif;