root = dirname( dirname( dirname( __FILE__ ) ) ); /** * plugins screen */ add_action( 'plugins_loaded', array( $this, 'action_plugins_loaded' ) ); add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 4 ); /** * iWorks Rate Class * * Allow to change iWorks Rate logo for admin notice. * * @since 1.0.2 * * @param string $logo Logo, can be empty. * @param object $plugin Plugin basic data. */ add_filter( 'iworks_rate_notice_logo_style', array( $this, 'filter_plugin_logo' ), 10, 2 ); } public function action_plugins_loaded() { $dir = dirname( __FILE__ ) . '/omnibus'; /** * WooCommerce * * @since 1.0.0 */ if ( defined( 'WC_PLUGIN_FILE' ) && defined( 'WC_VERSION' ) ) { /** * Check minimal WooCommerce version to run. * * @since 2.3.4 * */ if ( version_compare( WC_VERSION, '5.5', '<' ) ) { add_action( 'admin_notices', array( $this, 'action_admin_notices_show_woocommerce_version' ) ); } else { /** * Add Settings link on the Plugins list * * @since 1.0.2 */ add_filter( 'plugin_action_links_' . basename( $this->root ) . '/omnibus.php', array( $this, 'add_settings_link' ), 90, 4 ); include_once $dir . '/integration/class-iworks-omnibus-integration-woocommerce.php'; $this->objects['woocommerce'] = new iworks_omnibus_integration_woocommerce(); } } /** * LearnPress * * @since 1.0.1 */ if ( defined( 'LP_PLUGIN_FILE' ) ) { include_once $dir . '/integration/class-iworks-omnibus-learnpress.php'; $this->objects['learnpress'] = new iworks_omnibus_integration_learnpress(); } /** * Easy Digital Downloads * * @since 1.1.1 */ if ( class_exists( 'Easy_Digital_Downloads' ) ) { include_once $dir . '/integration/class-iworks-omnibus-easydigitaldownloads.php'; $this->objects['easydigitaldownloads'] = new iworks_omnibus_integration_easydigitaldownloads(); } /** * Debug Bar * * @since 2.4.0 */ if ( isset( $GLOBALS['debug_bar'] ) ) { include_once $dir . '/integration/class-iworks-omnibus-integration-debug-bar.php'; $this->objects['debug-bar'] = new iworks_omnibus_integration_debug_bar(); } /** * Omnibus loaded action * * @since 2.1.4 */ do_action( 'omnibus/loaded' ); } /** * Ask for rating. * * @since 1.0.2 */ public function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) { if ( isset( $plugin_data['slug'] ) && 'omnibus' == $plugin_data['slug'] ) { $plugin_meta['rating'] = sprintf( __( 'If you like Omnibus please leave us a %1$s★★★★★%2$s rating. A huge thanks in advance!', 'omnibus' ), '', '' ); } return $plugin_meta; } /** * Plugin logo for rate messages * * @since 1.0.2 * * @param string $logo Logo, can be empty. * @param object $plugin Plugin basic data. */ public function filter_plugin_logo( $logo, $plugin ) { if ( is_object( $plugin ) ) { $plugin = (array) $plugin; } if ( 'omnibus' === $plugin['slug'] ) { return plugin_dir_url( dirname( dirname( __FILE__ ) ) ) . 'assets/images/logo.svg'; } return $logo; } /** * Add settings link to plugin_row_meta. * * @since 1.0.2 * * @param array $actions An array of the plugin's metadata, including the version, author, author URI, and plugin URI. */ public function add_settings_link( $actions, $plugin_file, $plugin_data, $context ) { $actions['settings'] = sprintf( '%s', add_query_arg( array( 'page' => 'wc-settings', 'tab' => 'omnibus', ), admin_url( 'admin.php' ) ), __( 'Settings', 'omnibus' ) ); return $actions; } /** * get template * * @since 2.3.4 */ private function get_file( $file, $group = '' ) { return sprintf( '%s/assets/templates/%s%s.php', $this->root, '' === $group ? '' : $group . '/', sanitize_title( $file ) ); } /** * Show minimal WooCommerce version to run. * * @since 2.3.4 * */ public function action_admin_notices_show_woocommerce_version() { $file = $this->get_file( 'woocommerce-version' ); $args = array( 'version-current' => WC_VERSION, 'version-minimal' => '5.5.0', ); load_template( $file, true, $args ); } }