PATH:
home
/
letacommog
/
ldqm1
/
wp-content
/
plugins
/
woocommerce
/
packages
/
woocommerce-admin
/
src
/
Notes
<?php /** * WooCommerce Admin Add Install Jetpack and WooCommerce Shipping & Tax Plugin Note Provider. * * Adds a note to the merchant's inbox prompting them to install the Jetpack * and WooCommerce Shipping & Tax plugins after it fails to install during * WooCommerce setup. */ namespace Automattic\WooCommerce\Admin\Notes; defined( 'ABSPATH' ) || exit; use \Automattic\WooCommerce\Admin\PluginsHelper; /** * WC_Admin_Notes_Install_JP_And_WCS_Plugins */ class WC_Admin_Notes_Install_JP_And_WCS_Plugins { /** * Note traits. */ use NoteTraits; /** * Name of the note for use in the database. */ const NOTE_NAME = 'wc-admin-install-jp-and-wcs-plugins'; /** * Constructor. */ public function __construct() { add_action( 'woocommerce_note_action_install-jp-and-wcs-plugins', array( $this, 'install_jp_and_wcs_plugins' ) ); add_action( 'activated_plugin', array( $this, 'action_note' ) ); } /** * Get the note. */ public static function get_note() { $content = __( 'We noticed that there was a problem during the Jetpack and WooCommerce Shipping & Tax install. Please try again and enjoy all the advantages of having the plugins connected to your store! Sorry for the inconvenience. The "Jetpack" and "WooCommerce Shipping & Tax" plugins will be installed & activated for free.', 'woocommerce' ); $note = new WC_Admin_Note(); $note->set_title( __( 'Uh oh... There was a problem during the Jetpack and WooCommerce Shipping & Tax install. Please try again.', 'woocommerce' ) ); $note->set_content( $content ); $note->set_content_data( (object) array() ); $note->set_type( WC_ADMIN_Note::E_WC_ADMIN_NOTE_INFORMATIONAL ); $note->set_name( self::NOTE_NAME ); $note->set_source( 'woocommerce-admin' ); $note->add_action( 'install-jp-and-wcs-plugins', __( 'Install plugins', 'woocommerce' ), false, WC_Admin_Note::E_WC_ADMIN_NOTE_ACTIONED, true ); return $note; } /** * Action the Install Jetpack and WooCommerce Shipping & Tax note, if any exists, * and as long as both the Jetpack and WooCommerce Shipping & Tax plugins have been * activated. */ public static function action_note() { // Make sure that both plugins are active before actioning the note. $active_plugin_slugs = PluginsHelper::get_active_plugin_slugs(); $jp_active = in_array( 'jetpack', $active_plugin_slugs, true ); $wcs_active = in_array( 'woocommerce-services', $active_plugin_slugs, true ); if ( ! $jp_active || ! $wcs_active ) { return; } // Action any notes with a matching name. $data_store = \WC_Data_Store::load( 'admin-note' ); $note_ids = $data_store->get_notes_with_name( self::NOTE_NAME ); foreach ( $note_ids as $note_id ) { $note = WC_Admin_Notes::get_note( $note_id ); if ( $note ) { $note->set_status( WC_Admin_Note::E_WC_ADMIN_NOTE_ACTIONED ); $note->save(); } } } /** * Install the Jetpack and WooCommerce Shipping & Tax plugins in response to the action * being clicked in the admin note. * * @param WC_Admin_Note $note The note being actioned. */ public function install_jp_and_wcs_plugins( $note ) { if ( self::NOTE_NAME !== $note->get_name() ) { return; } $this->install_and_activate_plugin( 'jetpack' ); $this->install_and_activate_plugin( 'woocommerce-services' ); } /** * Installs and activates the specified plugin. * * @param string $plugin The plugin slug. */ private function install_and_activate_plugin( $plugin ) { $install_request = array( 'plugin' => $plugin ); $installer = new \Automattic\WooCommerce\Admin\API\OnboardingPlugins(); $result = $installer->install_plugin( $install_request ); // @todo Use the error statuses to decide whether or not to action the note. if ( is_wp_error( $result ) ) { return; } $activate_request = array( 'plugins' => $plugin ); $installer->activate_plugins( $activate_request ); } }
[+]
..
[-] WC_Admin_Notes_Draw_Attention.php
[edit]
[-] WC_Admin_Notes_Giving_Feedback_Notes.php
[edit]
[-] WC_Admin_Notes_Choose_Niche.php
[edit]
[-] WC_Admin_Notes_WooCommerce_Subscriptions.php
[edit]
[-] ConfirmTaxSettings.php
[edit]
[-] WC_Admin_Notes_Order_Milestones.php
[edit]
[-] WC_Admin_Notes_Review_Shipping_Settings.php
[edit]
[-] WC_Admin_Notes_Real_Time_Order_Alerts.php
[edit]
[-] NoteTraits.php
[edit]
[-] WC_Admin_Notes_Migrate_From_Shopify.php
[edit]
[-] DataStore.php
[edit]
[-] WC_Admin_Notes_Mobile_App.php
[edit]
[-] WC_Admin_Notes_Onboarding_Email_Marketing.php
[edit]
[-] WC_Admin_Notes_First_Product.php
[edit]
[-] WC_Admin_Notes_Launch_Checklist.php
[edit]
[-] WC_Admin_Notes.php
[edit]
[-] WC_Admin_Notes_Personalize_Store.php
[edit]
[-] WC_Admin_Notes_Online_Clothing_Store.php
[edit]
[-] WC_Admin_Notes_Install_JP_And_WCS_Plugins.php
[edit]
[-] WC_Admin_Notes_Coupon_Page_Moved.php
[edit]
[-] WC_Admin_Notes_Set_Up_Additional_Payment_Types.php
[edit]
[-] WC_Admin_Notes_Onboarding_Payments.php
[edit]
[-] WC_Admin_Notes_Start_Dropshipping_Business.php
[edit]
[-] WC_Admin_Notes_Test_Checkout.php
[edit]
[-] WC_Admin_Notes_Woo_Subscriptions_Notes.php
[edit]
[-] WC_Admin_Notes_Onboarding_Profiler.php
[edit]
[-] WC_Admin_Notes_Marketing.php
[edit]
[-] WC_Admin_Notes_Insight_First_Sale.php
[edit]
[-] WC_Admin_Notes_Customize_Store_With_Blocks.php
[edit]
[-] WC_Admin_Notes_New_Sales_Record.php
[edit]
[-] WC_Admin_Note.php
[edit]
[-] WC_Admin_Notes_Tracking_Opt_In.php
[edit]
[-] WC_Admin_Notes_WooCommerce_Payments.php
[edit]
[-] WC_Admin_Notes_Google_Ads_And_Marketing.php
[edit]
[-] WC_Admin_Notes_Deactivate_Plugin.php
[edit]
[-] WC_Admin_Notes_Performance_On_Mobile.php
[edit]
[-] WC_Admin_Notes_Edit_Products_On_The_Move.php
[edit]
[-] WC_Admin_Notes_Selling_Online_Courses.php
[edit]
[-] WC_Admin_Notes_Home_Screen_Feedback.php
[edit]
[-] WC_Admin_Notes_Historical_Data.php
[edit]
[-] WC_Admin_Notes_Need_Some_Inspiration.php
[edit]
[-] WC_Admin_Notes_EU_VAT_Number.php
[edit]