���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC is_network( $assoc_args ); $experiments = $this->parse_experiments( $args[0] ); $plural = $this->get_plural( $experiments ); $success = 'Experiment' . $plural . ' activated successfully'; $error = 'Cannot activate experiment' . $plural; if ( $is_network ) { $success .= " for site {$site}"; $error .= " for site {$site}"; } $experiments_manager = Plugin::instance()->experiments; if ( ! $this->check_experiments_exist( $experiments_manager, $experiments ) ) { \WP_CLI::error( 'Experiments do not exist' . $args[0] ); } if ( $is_network ) { $this->foreach_sites( $this->update_experiment_state, $experiments, Experiments_Manager::STATE_ACTIVE, $is_network, $success, $error ); } else { $this->update_experiment_state( $experiments, Experiments_Manager::STATE_ACTIVE, $is_network, $success, $error ); } } /** * Deactivate an Experiment * * ## EXAMPLES * * 1. wp elementor experiments deactivate container * - This will deactivate the Container experiment. * * @param array $args * @param array|null $assoc_args - Arguments from WP CLI command. */ public function deactivate( $args, $assoc_args ) { if ( empty( $args[0] ) ) { \WP_CLI::error( 'Please specify an experiment.' ); } $is_network = $this->is_network( $assoc_args ); $experiments = $this->parse_experiments( $args[0] ); $plural = $this->get_plural( $experiments ); $success = 'Experiment' . $plural . ' deactivated successfully'; $error = 'Cannot deactivate experiment' . $plural; $experiments_manager = Plugin::instance()->experiments; if ( ! $this->check_experiments_exist( $experiments_manager, $experiments ) ) { \WP_CLI::error( 'Experiments do not exist' ); } if ( $is_network ) { $this->foreach_sites( $this->update_experiment_state, $experiments, Experiments_Manager::STATE_INACTIVE, $is_network, $success, $error ); } else { $this->update_experiment_state( $experiments, Experiments_Manager::STATE_INACTIVE, $is_network, $success, $error ); } } /** * Experiment Status * * ## EXAMPLES * * 1. wp elementor experiments status container * - This will return the status of Container experiment. (active/inactive) * * @param array $args */ public function status( $args ) { if ( empty( $args[0] ) ) { \WP_CLI::error( 'Please specify an experiment.' ); } $experiments_manager = Plugin::$instance->experiments; $experiments_status = $experiments_manager->is_feature_active( $args[0] ) ? 'active' : 'inactive'; \WP_CLI::line( $experiments_status ); } /** * Determine if the current website is a multisite. * * @param array|null $assoc_args - Arguments from WP CLI command. * * @return bool */ private function is_network( $assoc_args ) { return ! empty( $assoc_args['network'] ) && is_multisite(); } /** * Iterate over network sites and execute a callback. * * @param callable $callback - Callback to execute. Gets the site name & id as parameters. * * @return void */ private function foreach_sites( callable $callback, $experiments, $state, $is_network, $success, $error ) { $blog_ids = get_sites( [ 'fields' => 'ids', 'number' => 0, ] ); foreach ( $blog_ids as $blog_id ) { switch_to_blog( $blog_id ); $callback( get_option( 'home' ), $experiments, $state, $is_network, $success, $error ); restore_current_blog(); } } /** * @param string $experiments_str comma delimeted string of experiments * * @return array array of experiments */ private function parse_experiments( $experiments_str ) { return explode( ',', $experiments_str ); } /** * @param array $experiments experiments * * @return string plural */ private function get_plural( $experiments ) { return count( $experiments ) > 0 ? 's' : ''; } /** * @param Experiments_Manager $experiments_manager manager * @param array $experiments experiments * * @return bool true when all experiments exist, otherwise false */ private function check_experiments_exist( $experiments_manager, $experiments ) { foreach ( $experiments as $experiment ) { $feature = $experiments_manager->get_features( $experiment ); if ( ! $feature ) { return false; } } return true; } private function update_experiment_state( $experiments, $state, $is_network, $success_message, $error_message, $site_id = '' ) { if ( $is_network ) { $success_message .= " for site {$site}"; $error_message .= " for site {$site}"; } $experiments_manager = Plugin::instance()->experiments; foreach ( $experiments as $experiment ) { $option = $experiments_manager->get_feature_option_key( $experiment ); update_option( $option, $state ); } try { \WP_CLI::success( $success_message ); } catch ( \Exception $e ) { \WP_CLI::error( $error_message ); } } }