is_woo_active() ) { delete_transient( 'apd_plugin_activated' ); wp_safe_redirect( admin_url( 'admin.php?page=apd-deposits' ) ); exit; } // WooCommerce is NOT active → clear transient, popup will show via should_show_popup() delete_transient( 'apd_plugin_activated' ); } /** * Should we show the popup on this page load? * Always show when WooCommerce is not active and our plugin is active. * * @return bool */ private function should_show_popup() { return ! $this->is_woo_active(); } /** * Enqueue CSS & JS for the popup only when needed. */ public function enqueue_assets() { if ( ! $this->should_show_popup() ) { return; } wp_enqueue_style( 'apd-woo-installer', APD_PLUGIN_URL . 'admin/css/apd-woo-installer.css', array(), filemtime( APD_PLUGIN_DIR . 'admin/css/apd-woo-installer.css' ) ); wp_enqueue_script( 'apd-woo-installer', APD_PLUGIN_URL . 'admin/js/apd-woo-installer.js', array( 'jquery' ), filemtime( APD_PLUGIN_DIR . 'admin/js/apd-woo-installer.js' ), true ); wp_localize_script( 'apd-woo-installer', 'apd_woo_installer', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'install_nonce' => wp_create_nonce( 'apd_install_woo' ), 'activate_nonce' => wp_create_nonce( 'apd_activate_woo' ), 'redirect_url' => admin_url( 'admin.php?page=apd-deposits' ), 'woo_installed' => $this->is_woo_installed() ? 'yes' : 'no', 'i18n' => array( 'installing' => __( 'Installing WooCommerce...', 'advanced-partial-payment-or-deposit-for-woocommerce' ), 'activating' => __( 'Activating WooCommerce...', 'advanced-partial-payment-or-deposit-for-woocommerce' ), 'success' => __( 'WooCommerce activated successfully!', 'advanced-partial-payment-or-deposit-for-woocommerce' ), 'redirecting' => __( 'Redirecting...', 'advanced-partial-payment-or-deposit-for-woocommerce' ), 'error' => __( 'Something went wrong. Please try again.', 'advanced-partial-payment-or-deposit-for-woocommerce' ), 'install_error' => __( 'Installation failed. Please install WooCommerce manually.', 'advanced-partial-payment-or-deposit-for-woocommerce' ), 'activate_error' => __( 'Activation failed. Please activate WooCommerce manually.', 'advanced-partial-payment-or-deposit-for-woocommerce' ), ), ) ); } /** * Render the popup HTML in admin footer. */ public function render_popup() { if ( ! $this->should_show_popup() ) { return; } $is_installed = $this->is_woo_installed(); $btn_text = $is_installed ? __( 'Activate WooCommerce', 'advanced-partial-payment-or-deposit-for-woocommerce' ) : __( 'Install & Activate WooCommerce', 'advanced-partial-payment-or-deposit-for-woocommerce' ); ?>

__( 'You do not have permission to install plugins.', 'advanced-partial-payment-or-deposit-for-woocommerce' ) ) ); } include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; include_once ABSPATH . 'wp-admin/includes/file.php'; include_once ABSPATH . 'wp-admin/includes/misc.php'; include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; $api = plugins_api( 'plugin_information', array( 'slug' => 'woocommerce', 'fields' => array( 'short_description' => false, 'sections' => false, 'requires' => false, 'rating' => false, 'ratings' => false, 'downloaded' => false, 'last_updated' => false, 'added' => false, 'tags' => false, 'compatibility' => false, 'homepage' => false, 'donate_link' => false, ), ) ); if ( is_wp_error( $api ) ) { wp_send_json_error( array( 'message' => $api->get_error_message() ) ); } $upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() ); $result = $upgrader->install( $api->download_link ); if ( is_wp_error( $result ) ) { wp_send_json_error( array( 'message' => $result->get_error_message() ) ); } if ( $result === false ) { wp_send_json_error( array( 'message' => __( 'Installation failed.', 'advanced-partial-payment-or-deposit-for-woocommerce' ) ) ); } wp_send_json_success( array( 'message' => __( 'WooCommerce installed successfully.', 'advanced-partial-payment-or-deposit-for-woocommerce' ) ) ); } /** * AJAX: Activate WooCommerce plugin. */ public function ajax_activate_woocommerce() { check_ajax_referer( 'apd_activate_woo', 'nonce' ); if ( ! current_user_can( 'activate_plugins' ) ) { wp_send_json_error( array( 'message' => __( 'You do not have permission to activate plugins.', 'advanced-partial-payment-or-deposit-for-woocommerce' ) ) ); } $result = activate_plugin( 'woocommerce/woocommerce.php' ); if ( is_wp_error( $result ) ) { wp_send_json_error( array( 'message' => $result->get_error_message() ) ); } wp_send_json_success( array( 'message' => __( 'WooCommerce activated successfully!', 'advanced-partial-payment-or-deposit-for-woocommerce' ) ) ); } } new APD_Woo_Installer(); }