golden hour
/home/godaofbq/hyperbarichelp.com/wp-content/plugins/woocommerce/src/Internal/Admin/Notes
⬆️ Go Up
Upload
File/Folder
Size
Actions
.htaccess
420 B
Del
OK
CustomizeStoreWithBlocks.php
2.35 KB
Del
OK
CustomizingProductCatalog.php
2.2 KB
Del
OK
EUVATNumber.php
1.63 KB
Del
OK
EditProductsOnTheMove.php
1.68 KB
Del
OK
EmailImprovements.php
2.82 KB
Del
OK
FirstProduct.php
2.18 KB
Del
OK
GivingFeedbackNotes.php
1.5 KB
Del
OK
InstallJPAndWCSPlugins.php
5.74 KB
Del
OK
LaunchChecklist.php
1.68 KB
Del
OK
MagentoMigration.php
2.45 KB
Del
OK
ManageOrdersOnTheGo.php
1.54 KB
Del
OK
MarketingJetpack.php
3.55 KB
Del
OK
MigrateFromShopify.php
2.21 KB
Del
OK
MobileApp.php
1.39 KB
Del
OK
NewSalesRecord.php
5.25 KB
Del
OK
NoteActionForbiddenException.php
1.3 KB
Del
OK
OnboardingPayments.php
1.74 KB
Del
OK
OnlineClothingStore.php
2.68 KB
Del
OK
OrderMilestones.php
9.15 KB
Del
OK
PaymentsMoreInfoNeeded.php
2.14 KB
Del
OK
PaymentsRemindMeLater.php
2.06 KB
Del
OK
PerformanceOnMobile.php
1.64 KB
Del
OK
PersonalizeStore.php
1.91 KB
Del
OK
RealTimeOrderAlerts.php
1.51 KB
Del
OK
ScheduledUpdatesPromotion.php
2.75 KB
Del
OK
SellingOnlineCourses.php
2.38 KB
Del
OK
TrackingOptIn.php
3.17 KB
Del
OK
UnsecuredReportFiles.php
2.12 KB
Del
OK
WooCommercePayments.php
6.25 KB
Del
OK
WooCommerceSubscriptions.php
1.88 KB
Del
OK
WooSubscriptionsNotes.php
13.25 KB
Del
OK
Edit: InstallJPAndWCSPlugins.php
<?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\Internal\Admin\Notes; defined( 'ABSPATH' ) || exit; use Automattic\WooCommerce\Admin\Notes\Note; use Automattic\WooCommerce\Admin\Notes\Notes; use Automattic\WooCommerce\Admin\Notes\NoteTraits; use Automattic\WooCommerce\Admin\PluginsHelper; /** * Install_JP_And_WCS_Plugins */ class InstallJPAndWCSPlugins { /** * 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' ) ); add_action( 'woocommerce_plugins_install_api_error', array( $this, 'on_install_error' ) ); add_action( 'woocommerce_plugins_install_error', array( $this, 'on_install_error' ) ); add_action( 'woocommerce_plugins_activate_error', array( $this, 'on_install_error' ) ); } /** * Get the note. * * @return 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 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( 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, Note::E_WC_ADMIN_NOTE_ACTIONED ); 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 = Notes::load_data_store(); $note_ids = $data_store->get_notes_with_name( self::NOTE_NAME ); foreach ( $note_ids as $note_id ) { $note = Notes::get_note( $note_id ); if ( $note ) { $note->set_status( 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 Note $note The note being actioned. * * @throws NoteActionForbiddenException When the current user lacks the `install_plugins` capability. */ public function install_jp_and_wcs_plugins( $note ) { if ( self::NOTE_NAME !== $note->get_name() ) { return; } // The route-level permission check on `POST /wc-analytics/admin/notes/.../action/...` // only requires `manage_woocommerce`, which `shop_manager` satisfies. Plugin install // requires the dedicated `install_plugins` capability — gate per-handler. // // Throwing (rather than returning silently) prevents `Notes::trigger_note_action()` // from persisting the action's `E_WC_ADMIN_NOTE_ACTIONED` status: the exception // aborts the dispatch before the status-saving `$note->save()` inside // `Notes::trigger_note_action()` runs, so the note stays actionable in the inbox. // (The REST controller has already saved `is_read = true` at this point — that // earlier save is intentional and unaffected by the cap check.) // `NoteActions::trigger_note_action()` catches the typed exception and maps it // to a 403 REST response. if ( ! current_user_can( 'install_plugins' ) ) { throw new NoteActionForbiddenException( esc_html__( 'You do not have permissions to manage plugins. Please contact your site administrator.', 'woocommerce' ) ); } $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 ); } /** * Create an alert notification in response to an error installing a plugin. * * @param string $slug The slug of the plugin being installed. */ public function on_install_error( $slug ) { // Exit early if we're not installing the Jetpack or the WooCommerce Shipping & Tax plugins. if ( 'jetpack' !== $slug && 'woocommerce-services' !== $slug ) { return; } self::possibly_add_note(); } }
Save