Jetpack Sync: Add sync action for network site enable and disable themes#7180
Jetpack Sync: Add sync action for network site enable and disable themes#7180
Conversation
| * | ||
| * @param mixed $disabled_themes, Array of info about network disabled themes | ||
| */ | ||
| do_action( 'jetpack_network_disabled_themes', $disabled_themes ); |
There was a problem hiding this comment.
we could send the enabled ones too? what do you think?
There was a problem hiding this comment.
Themes can't be both changed from enabled to disabled and changed from disabled to enabled by the same user action. When themes are disabled, the Activity Log needs to know which themes were disabled. When themes are enabled, the Activity Log needs to know which themes were enabled. Why would we send themes that are unrelated to the activity/action?
There was a problem hiding this comment.
not sure really, I thought it could be useful to always know the active ones
| if ( 'enable-selected' === $action || 'enable' === $action ) { | ||
| $enabled_theme_names = array_keys( array_diff_key( $value, $old_value ) ); | ||
| $enabled_themes = array(); | ||
| foreach ( $enabled_theme_names as $name ) { |
There was a problem hiding this comment.
we could probably extract this to its own method
| * | ||
| * @since 5.0.0 | ||
| * | ||
| * @param mixed $disabled_themes, Array of info about network disabled themes |
There was a problem hiding this comment.
we should add the second parameter too
| * | ||
| * @since 5.0.0 | ||
| * | ||
| * @param mixed $enabled_themes , Array of info about network enabled themes |
There was a problem hiding this comment.
we should add the second parameter too
| do_action( 'jetpack_network_enabled_themes', $enabled_themes, array_keys( $value ) ); | ||
| } | ||
|
|
||
| private function get_multisite_changed_themes( $theme_names ) { |
There was a problem hiding this comment.
we could call this method get_themes_details, we could use it with non multisite themes too
| * | ||
| * Note that 'allowedthemes' is dynamic, i.e. do_action is called on "update_site_option_{$option}" | ||
| * | ||
| * @since 2.9.0 |
There was a problem hiding this comment.
I would remove the since part. Since the version number refers to WP and not Jetpack.
| * | ||
| * Note that 'allowedthemes' is dynamic, i.e. do_action is called on "update_site_option_{$option}" | ||
| * | ||
| * @since 2.9.0 |
| * | ||
| * Note that 'allowedthemes' is dynamic, i.e. do_action is called on "update_site_option_{$option}" | ||
| * | ||
| * @since 2.9.0 |
| * | ||
| * Note that 'allowedthemes' is dynamic, i.e. do_action is called on "update_site_option_{$option}" | ||
| * | ||
| * @since 2.9.0 |
| * @param mixed $disabled_themes, Array of info about network disabled themes | ||
| * @param mixed array_keys( $value ), Array of slugs of all enabled themes | ||
| */ | ||
| do_action( 'jetpack_network_disabled_themes', $disabled_themes, array_keys( $value ) ); |
There was a problem hiding this comment.
Can we make array_keys( $value ) more descriptive. Something like
$enabled_theme_slugs would read better
| * @param mixed $enabled_themes , Array of info about network enabled themes | ||
| * @param mixed array_keys( $value ), Array of slugs of all enabled themes | ||
| */ | ||
| do_action( 'jetpack_network_enabled_themes', $enabled_themes, array_keys( $value ) ); |
There was a problem hiding this comment.
Can we make array_keys( $value ) more descriptive. Something like
$enabled_theme_slugs would read better
| public function sync_network_allowed_themes_change( $option, $value, $old_value, $network_id ) { | ||
| if ( count( $old_value ) > count( $value ) ) { | ||
| $disabled_theme_names = array_keys( array_diff_key( $old_value, $value ) ); | ||
| $disabled_themes = $this->get_theme_details_for_slugs( $disabled_theme_names ); |
There was a problem hiding this comment.
Something like $newly_disabled_themes might be a bit more descriptive.
|
|
||
| $event_data = $this->server_event_storage->get_most_recent_event( 'jetpack_network_enabled_themes' ); | ||
|
|
||
| foreach ( $test_themes as $theme ) { |
There was a problem hiding this comment.
Lets also test that the slug is also being set.
|
|
||
| $event_data = $this->server_event_storage->get_most_recent_event( 'jetpack_network_disabled_themes' ); | ||
|
|
||
| foreach ( $test_themes as $theme ) { |
enejb
left a comment
There was a problem hiding this comment.
Left some minor feedback. Would it make sense to update split up the big test?
* Changelog: first pass at a changelog for 5.0 * Changelog: delete 4.9 testing list. * Changelog: update minimum WP version to match ver. in jetpack.php Fixes #7158 * Changelog: add #6051 * Changelog: add #6753 * Changelog: add #6928 * Changelog: add #6964 * Changelog: add #7014 * Changelog: add #7057 * Changelog: add #7060 * Changelog: add #7068 * Changelog: add #7070 * Changelog: add #7072 * Changelog: add #7071 * Changelog: add release date and post shortlink. * Changelog: add #7094 * Changelog: add #7100 * Changelog: add #7108 * Changelog: add #7113 * Changelog: add #7123 * Changelog: add #7135 * Changelog: add #7143 * Changelog: add #7151 * Changelog: add #6996 * Changelog: add #7105 * Changelog: add #7132 * Changelog: add #7166 * Changelog: fix typo in 4.9 changelog. * Changelog: remove older releases' changelogs. @see p1HpG7-42e-p2 * Changelog: add #7090 * Changelog: add #7095 * Changelog: add #7112 * Changelog: add #7115 * Changelog: add #7122 * Changelog: add #7137 * Changelog: add #7138 * Changelog: add #7140 * Changelog: add #7154 * Changelog: add ##7155 * Changelog: add #7163 * Changelog: add #7167 * Changelog: add #7171 * Changelog: add #7180 * Changelog: add #7181 * Changelog: add #7183 * Changelog: add #7184 * Changelog: add #7189 * Changelog: add #7191 * Changelog: add #7193 * Changelog: add #7198 * Changelog: add #7200 * Changelog: add #7209 * Changelog: add #7212 * Testing list: add instructions for #7115 * Changelog: add #7188 * Changelog: add #7205 * Changelog: add #7225 * Changelog: add #6872 * Changelog: add #7107 * Changelog: add #7118 * Changelog: add #7142 * Changelog: add #7170 * Changelog: add #7210 * Changelog: add #7218 * Changelog: add #7232 * Changelog: add #7211 * Changelog: add #7213 * Changelog: add #7229 * Changelog: add #7230 * Changelog: add #7214 * Draft changelog for 5.0 * Changelog updates: 2nd pass at a clearer changelog. - Fix typos. - Use consistent tense and tone across all changelog. - Remove unclear items. * Changelog: add #7026 * Changelog: add #7058 * Changelog: add #7125 * Changelog: add #7249 * Changelog: add #7185 * add mentions of image widget migration * Changelog: add info about new output for CLI command. * Changelog: add WP version number matching the new Image Widget.
Jetpack Sync: Add sync action for network/multisite enable and disable themes
Changes proposed in this Pull Request:
Add sync action for network/multisite enable and disable themes
Testing instructions:
phpunit runs new tests when on multisite
Proposed changelog entry for your changes:
Addition of jetpack_network_disabled_themes and jetpack_network_enabled_themes hooks