[wp-trac] [WordPress Trac] #61040: Provide a framework for plugin onboarding experiences

WordPress Trac noreply at wordpress.org
Fri Apr 26 17:47:05 UTC 2024


#61040: Provide a framework for plugin onboarding experiences
-------------------------+------------------------------
 Reporter:  jorbin       |       Owner:  (none)
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  Awaiting Review
Component:  Plugins      |     Version:
 Severity:  normal       |  Resolution:
 Keywords:               |     Focuses:  administration
-------------------------+------------------------------

Comment (by afragen):

 Replying to [comment:13 costdev]:
 > > Would a hook be a viable option here? As long as there hasn't been a
 page refresh the plugin's code hasn't run, so any functions defining an
 onboarding/configuration URL would not be available yet, at least from
 what I can tell.
 >
 > Yeah it works because `activate_plugin()` calls
 `plugin_sandbox_scrape()` which loads the main plugin file, which is where
 I would imagine we'd advise plugin authors to put it. It's a configuration
 thing, so I wouldn't recommend someone puts it behind an `init` hook.
 Options/Transients should already be available if they want to base their
 URL on the value of one.
 >
 > -----
 >
 > For fellow "lemme try" people:
 >
 > 1. Enable `WP_DEBUG` and `WP_DEBUG_LOG`.
 > 2. Go to `Plugins > Add New` and install WooCommerce. **Do not activate
 it yet**
 > 3. Modify `woocommerce/woocommerce.php` to add this after the `ABSPATH`
 bail:
 > {{{#!php
 > add_filter(
 >       plugin_basename( __FILE__ ) . '_configuration_url',
 >       function () {
 >               return admin_url( 'admin.php?page=wc-admin' );
 >       }
 > );
 > }}}
 > 4. Modify `wp_ajax_activate_plugin()` (in `src/wp-admin/includes/admin-
 ajax.php`) so it ends with the following:
 > {{{#!php
 > // Add these two lines above the call to wp_send_json_success().
 > $configuration_url = apply_filters( $status['plugin'] .
 '_configuration_url', '' );
 > error_log( $configuration_url );
 >
 > wp_send_json_success( $status );
 > }}}
 > 4. Activate WooCommerce and check `wp-content/debug.log`.

 debug.log output from above


 {{{
 [26-Apr-2024 17:45:35 UTC] http://xxxx.test/wp-admin/admin.php?page=wc-
 admin
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/61040#comment:16>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list