P1 Ц1 ҵ1 1 p 1 }i ! 1 1 1 1a @ 0 M1 1 1 }i n1 W1 futsu. ! 1 1a @ 0 K1 P!1 }i A @S1 s1 otan. ! F1 1a 0 rW1 1 !1 }i P1 `1 i. ! P41 1a @ 0 1 0"1 }i ! p1 1 echa. ! I1 1a @ 0 1 %1 "1 }i A @S1 1 etsu. ! %1 1a 0 1 1 #1 }i A @S1 1 abe. ! 1 1a 0 :1 `&1 #1 }i ! P1 P1 aoi. ! &1 1a @ 0 b1 1 #1 }i A @S1 01 amaki. ! 1 1a 0 r1 `$1 }i A @S1 @1 izu. ! 51 1a 0 0 1 P1 $1 }i 1 @1 p1 1a @ 0 "91 P%1 p 0 e1 ido.shinshinotsu. 1 01 1a shinotsu. 0 ">1 1 %1 }i A @S1 p"1 toku. ! 1 1a @ 0 "1 @&1 }i A @S1 1 anuka. ! 1 1a 0 B?1 &1 }i ! 1 `1 aoi. ! p1 1a @ 0 ¯1 '1 }i $1 PU1 iuchi. ! 0A1 1a @ 0 I1 '1 }i A @S1 U1 tsu. ! $1 1a 0 N1 (1 }i A @S1 Z1 gawa. ! @k1 1a p 0 b1 p(1 }i `61 1 i. ! P1 1a @ 0 1 /1 (1 }i A @S1 1 su. ! @/1 1a P 0 1 P)1 }i A @S1 O1 kawa. ! 1 1a 0 1 ;1 )1 }i Q 1 1 noue. ! <1 1a @ 0 ¸1 0*1 }i v1 >1 ikaga. ! 1 1a @ 0 1 1 *1 }i A @S1 1 tsu. ! 01 1a 0 U1 +1 }i ! 1 w1 a. ! 91 1a @ 0 k1 +1 }i `1 p1 komai. ! 1 1a @ 0 B1 +1 }i A @S1 P1 ri. ! У1 1a 0 1 `,1 }i 1 1 . ! 1 1a @ 0 Q1 ,1 }i A @S1 M1 ko. ! 1 1a 0 B81 @-1 }i A 01 '1 1 1a @ 0 271 -1 }i A @S1 +1 ura. ! p1 1a 0 BW1 .1 }i 1 ph1 etsu. ! 0*1 1a @ 0 t1 1 .1 }i A @S1 h1 igata. ! 1 1a 0 1 P1 /1 }i Pa1 @(1 awa. ! p1 1a @ 0 41 p/1 }i A @S1 (1 su. ! a1 1a p 0 1 1 /1 }i ! 1 `u1 . ! 1 1a @ 0 ins' ) { // If future versions of WordPress change this filter's behavior, our behavior should stay consistent. return; } if ( ! \is_array( $old_value ) || ! \is_array( $new_value ) ) { return; } $auto_updates_are_enabled = $this->are_auto_updates_enabled( self::WPSEO_FREE_PLUGIN_ID, $new_value ); $auto_updates_were_enabled = $this->are_auto_updates_enabled( self::WPSEO_FREE_PLUGIN_ID, $old_value ); if ( $auto_updates_are_enabled === $auto_updates_were_enabled ) { // Auto-updates for Yoast SEO have stayed the same, so have neither been enabled or disabled. return; } $auto_updates_have_been_enabled = $auto_updates_are_enabled && ! $auto_updates_were_enabled; if ( $auto_updates_have_been_enabled ) { $this->enable_auto_updates_for_addons( $new_value ); return; } else { $this->disable_auto_updates_for_addons( $new_value ); return; } if ( ! $auto_updates_are_enabled ) { return; } $auto_updates_have_been_removed = false; foreach ( self::ADD_ON_PLUGIN_FILES as $addon ) { if ( ! $this->are_auto_updates_enabled( $addon, $new_value ) ) { $auto_updates_have_been_removed = true; break; } } if ( $auto_updates_have_been_removed ) { $this->enable_auto_updates_for_addons( $new_value ); } } /** * Trigger a change in the auto update detection whenever a new Yoast addon is activated. * * @param string $plugin The plugin that is activated. * * @return void */ public function maybe_toggle_auto_updates_for_new_install( $plugin ) { $not_a_yoast_addon = ! \in_array( $plugin, self::ADD_ON_PLUGIN_FILES, true ); if ( $not_a_yoast_addon ) { return; } $enabled_auto_updates = \get_site_option( 'auto_update_plugins' ); $this->toggle_auto_updates_for_add_ons( 'auto_update_plugins', $enabled_auto_updates, [] ); } /** * Enables auto-updates for all addons. * * @param string[] $auto_updated_plugins The current list of auto-updated plugins. */ protected function enable_auto_updates_for_addons( $auto_updated_plugins ) { $plugins = \array_unique( \array_merge( $auto_updated_plugins, self::ADD_ON_PLUGIN_FILES ) ); \update_site_option( 'auto_update_plugins', $plugins ); } /** * Disables auto-updates for all addons. * * @param string[] $auto_updated_plugins The current list of auto-updated plugins. */ protected function disable_auto_updates_for_addons( $auto_updated_plugins ) { $plugins = \array_values( \array_diff( $auto_updated_plugins, self::ADD_ON_PLUGIN_FILES ) ); \update_site_option( 'auto_update_plugins', $plugins ); } /** * Checks whether auto updates for a plugin are enabled. * * @param string $plugin_id The plugin ID. * @param array $auto_updated_plugins The array of auto updated plugins. * * @return bool Whether auto updates for a plugin are enabled. */ protected function are_auto_updates_enabled( $plugin_id, $auto_updated_plugins ) { if ( $auto_updated_plugins === false || ! \is_array( $auto_updated_plugins ) ) { return false; } return \in_array( $plugin_id, $auto_updated_plugins, true ); } }