| 1 |  |  | <?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | namespace Automattic\Jetpack\JITM; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  | use Automattic\Jetpack\Asset_Tools\Manager as Asset_Manager; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  | use Automattic\Jetpack\Connection\Manager as Jetpack_Connection; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 |  |  | use Automattic\Jetpack\Assets\Logo as Jetpack_Logo; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  | use Automattic\Jetpack\Tracking\Manager as JetpackTracking; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 |  |  | /** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |  * Jetpack just in time messaging through out the admin | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 |  |  |  * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |  * @since 5.6.0 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 |  |  |  */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 |  |  | class Manager { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 |  |  | 	const PACKAGE_VERSION = '1.0'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 |  |  | 	private $is_prepare_jitms_callback_added; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 |  |  | 	 * Jetpack_JITM constructor. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 |  |  | 	public function __construct() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 |  |  | 		if ( ! apply_filters( 'jetpack_just_in_time_msgs', false ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 |  |  | 			$this->is_prepare_jitms_callback_added = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 |  |  | 			return false; | 
                            
                    |  |  |  | 
                                                                                        
                                                                                     | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 |  |  | 		add_action( 'current_screen', array( $this, 'prepare_jitms' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 |  |  | 		$this->is_prepare_jitms_callback_added = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 |  |  | 	 * Get's the Jetpack emblem | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 |  |  | 	 * @return string The Jetpack emblem | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 |  |  | 	function get_emblem() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 |  |  | 		$jetpack_logo = new Jetpack_Logo(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 |  |  | 		return '<div class="jp-emblem">' . $jetpack_logo->get_jp_emblem() . '</div>'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 |  |  | 	 * Prepare actions according to screen and post type. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  | 	 * @since 3.8.2 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  | 	 * @uses Jetpack_Autoupdate::get_possible_failures() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  | 	 * @param object $screen | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  | 	function prepare_jitms( $screen ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 |  |  | 		if ( ! in_array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 |  |  | 			$screen->id, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  | 			array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 |  |  | 				'jetpack_page_stats', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  | 				'jetpack_page_akismet-key-config', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 |  |  | 				'admin_page_jetpack_modules', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 |  |  | 			) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  | 		) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  | 			add_action( 'admin_enqueue_scripts', array( $this, 'jitm_enqueue_files' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  | 			add_action( 'admin_notices', array( $this, 'ajax_message' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 |  |  | 			add_action( 'edit_form_top', array( $this, 'ajax_message' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 64 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 65 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 66 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 67 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 68 |  |  | 	 * A special filter for WooCommerce, to set a message based on local state. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 69 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 70 |  |  | 	 * @param $message string The current message | 
            
                                                                                                            
                            
            
                                    
            
            
                | 71 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 72 |  |  | 	 * @return array The new message | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 73 |  |  | 	 */ | 
            
                                                                        
                            
            
                                    
            
            
                | 74 |  |  | 	static function jitm_woocommerce_services_msg( $content ) { | 
            
                                                                        
                            
            
                                    
            
            
                | 75 |  |  | 		if ( ! function_exists( 'wc_get_base_location' ) ) { | 
            
                                                                        
                            
            
                                    
            
            
                | 76 |  |  | 			return $content; | 
            
                                                                        
                            
            
                                    
            
            
                | 77 |  |  | 		} | 
            
                                                                        
                            
            
                                    
            
            
                | 78 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 79 |  |  | 		$base_location = wc_get_base_location(); | 
            
                                                                        
                            
            
                                    
            
            
                | 80 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 81 |  |  | 		switch ( $base_location['country'] ) { | 
            
                                                                        
                            
            
                                    
            
            
                | 82 |  |  | 			case 'US': | 
            
                                                                        
                            
            
                                    
            
            
                | 83 |  |  | 				$content->message = esc_html__( 'New free service: Show USPS shipping rates on your store! Added bonus: print shipping labels without leaving WooCommerce.', 'jetpack' ); | 
            
                                                                        
                            
            
                                    
            
            
                | 84 |  |  | 				break; | 
            
                                                                        
                            
            
                                    
            
            
                | 85 |  |  | 			case 'CA': | 
            
                                                                        
                            
            
                                    
            
            
                | 86 |  |  | 				$content->message = esc_html__( 'New free service: Show Canada Post shipping rates on your store!', 'jetpack' ); | 
            
                                                                        
                            
            
                                    
            
            
                | 87 |  |  | 				break; | 
            
                                                                        
                            
            
                                    
            
            
                | 88 |  |  | 			default: | 
            
                                                                        
                            
            
                                    
            
            
                | 89 |  |  | 				$content->message = ''; | 
            
                                                                        
                            
            
                                    
            
            
                | 90 |  |  | 		} | 
            
                                                                        
                            
            
                                    
            
            
                | 91 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 92 |  |  | 		return $content; | 
            
                                                                        
                            
            
                                    
            
            
                | 93 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 94 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 95 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 96 |  |  | 	 * A special filter for WooCommerce Call To Action button | 
            
                                                                                                            
                            
            
                                    
            
            
                | 97 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 98 |  |  | 	 * @param $CTA string The existing CTA | 
            
                                                                                                            
                            
            
                                    
            
            
                | 99 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 100 |  |  | 	 * @return string The new CTA | 
            
                                                                                                            
                            
            
                                    
            
            
                | 101 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 102 |  |  | 	static function jitm_jetpack_woo_services_install( $CTA ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 103 |  |  | 		return wp_nonce_url( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 104 |  |  | 			add_query_arg( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 105 |  |  | 				array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 106 |  |  | 					'wc-services-action' => 'install', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 107 |  |  | 				), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 108 |  |  | 				admin_url( 'admin.php?page=wc-settings' ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 109 |  |  | 			), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 110 |  |  | 			'wc-services-install' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 111 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 112 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 113 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 114 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 115 |  |  | 	 * A special filter for WooCommerce Call To Action button | 
            
                                                                                                            
                            
            
                                    
            
            
                | 116 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 117 |  |  | 	 * @param $CTA string The existing CTA | 
            
                                                                                                            
                            
            
                                    
            
            
                | 118 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 119 |  |  | 	 * @return string The new CTA | 
            
                                                                                                            
                            
            
                                    
            
            
                | 120 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 121 |  |  | 	static function jitm_jetpack_woo_services_activate( $CTA ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 122 |  |  | 		return wp_nonce_url( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 123 |  |  | 			add_query_arg( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 124 |  |  | 				array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 125 |  |  | 					'wc-services-action' => 'activate', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 126 |  |  | 				), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 127 |  |  | 				admin_url( 'admin.php?page=wc-settings' ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 128 |  |  | 			), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 129 |  |  | 			'wc-services-install' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 130 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 131 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 132 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 133 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 134 |  |  | 	 * Injects the dom to show a JITM inside of | 
            
                                                                                                            
                            
            
                                    
            
            
                | 135 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 136 |  |  | 	function ajax_message() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 137 |  |  | 		$message_path   = $this->get_message_path(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 138 |  |  | 		$query_string   = _http_build_query( $_GET, '', ',' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 139 |  |  | 		$current_screen = wp_unslash( $_SERVER['REQUEST_URI'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 140 |  |  | 		?> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 141 |  |  | 		<div class="jetpack-jitm-message" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 142 |  |  | 			 data-nonce="<?php echo wp_create_nonce( 'wp_rest' ); ?>" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 143 |  |  | 			 data-message-path="<?php echo esc_attr( $message_path ); ?>" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 144 |  |  | 			 data-query="<?php echo urlencode_deep( $query_string ); ?>" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 145 |  |  | 			 data-redirect="<?php echo urlencode_deep( $current_screen ); ?>" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 146 |  |  | 		></div> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 147 |  |  | 		<?php | 
            
                                                                                                            
                            
            
                                    
            
            
                | 148 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 149 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 150 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 151 |  |  | 	 * Get's the current message path for display of a JITM | 
            
                                                                                                            
                            
            
                                    
            
            
                | 152 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 153 |  |  | 	 * @return string The message path | 
            
                                                                                                            
                            
            
                                    
            
            
                | 154 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 155 |  |  | 	function get_message_path() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 156 |  |  | 		$screen = get_current_screen(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 157 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 158 |  |  | 		return 'wp:' . $screen->id . ':' . current_filter(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 159 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 160 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 161 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 162 |  |  | 	 * Function to enqueue jitm css and js | 
            
                                                                                                            
                            
            
                                    
            
            
                | 163 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 164 |  |  | 	function jitm_enqueue_files() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 165 |  |  | 		$asset_manager = new Asset_Manager(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 166 |  |  | 		$min           = ''; // ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 167 |  |  | 		wp_register_style( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 168 |  |  | 			'jetpack-jitm-css', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 169 |  |  | 			plugins_url( "assets/jetpack-admin-jitm{$min}.css", __DIR__ ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 170 |  |  | 			false, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 171 |  |  | 			self::PACKAGE_VERSION . | 
            
                                                                                                            
                            
            
                                    
            
            
                | 172 |  |  | 			'-201243242' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 173 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 174 |  |  | 		wp_style_add_data( 'jetpack-jitm-css', 'rtl', 'replace' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 175 |  |  | 		wp_style_add_data( 'jetpack-jitm-css', 'suffix', $min ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 176 |  |  | 		wp_enqueue_style( 'jetpack-jitm-css' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 177 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 178 |  |  | 		wp_enqueue_script( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 179 |  |  | 			'jetpack-jitm-new', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 180 |  |  | 			$asset_manager->get_file_url_for_environment( '_inc/build/jetpack-jitm.min.js', '_inc/jetpack-jitm.js' ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 181 |  |  | 			array( 'jquery' ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 182 |  |  | 			self::PACKAGE_VERSION, // TODO: Keep in sync with version specified in composer.json | 
            
                                                                                                            
                            
            
                                    
            
            
                | 183 |  |  | 			true | 
            
                                                                                                            
                            
            
                                    
            
            
                | 184 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 185 |  |  | 		wp_localize_script( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 186 |  |  | 			'jetpack-jitm-new', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 187 |  |  | 			'jitm_config', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 188 |  |  | 			array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 189 |  |  | 				'api_root'               => esc_url_raw( rest_url() ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 190 |  |  | 				'activate_module_text'   => esc_html__( 'Activate', 'jetpack' ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 191 |  |  | 				'activated_module_text'  => esc_html__( 'Activated', 'jetpack' ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 192 |  |  | 				'activating_module_text' => esc_html__( 'Activating', 'jetpack' ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 193 |  |  | 			) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 194 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 195 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 196 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 197 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 198 |  |  | 	 * Dismisses a JITM feature class so that it will no longer be shown | 
            
                                                                                                            
                            
            
                                    
            
            
                | 199 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 200 |  |  | 	 * @param $id string The id of the JITM that was dismissed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 201 |  |  | 	 * @param $feature_class string The feature class of the JITM that was dismissed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 202 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 203 |  |  | 	 * @return bool Always true | 
            
                                                                                                            
                            
            
                                    
            
            
                | 204 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 205 |  |  | 	function dismiss( $id, $feature_class ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 206 |  |  | 		JetpackTracking::record_user_event( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 207 |  |  | 			'jitm_dismiss_client', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 208 |  |  | 			array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 209 |  |  | 				'jitm_id'       => $id, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 210 |  |  | 				'feature_class' => $feature_class, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 211 |  |  | 			) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 212 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 213 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 214 |  |  | 		$hide_jitm = \Jetpack_Options::get_option( 'hide_jitm' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 215 |  |  | 		if ( ! is_array( $hide_jitm ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 216 |  |  | 			$hide_jitm = array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 217 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 218 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 219 |  |  | 		if ( isset( $hide_jitm[ $feature_class ] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 220 |  |  | 			if ( ! is_array( $hide_jitm[ $feature_class ] ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 221 |  |  | 				$hide_jitm[ $feature_class ] = array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 222 |  |  | 					'last_dismissal' => 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 223 |  |  | 					'number'         => 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 224 |  |  | 				); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 225 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 226 |  |  | 		} else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 227 |  |  | 			$hide_jitm[ $feature_class ] = array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 228 |  |  | 				'last_dismissal' => 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 229 |  |  | 				'number'         => 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 230 |  |  | 			); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 231 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 232 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 233 |  |  | 		$number = $hide_jitm[ $feature_class ]['number']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 234 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 235 |  |  | 		$hide_jitm[ $feature_class ] = array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 236 |  |  | 			'last_dismissal' => time(), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 237 |  |  | 			'number'         => $number + 1, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 238 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 239 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 240 |  |  | 		\Jetpack_Options::update_option( 'hide_jitm', $hide_jitm ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 241 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 242 |  |  | 		return true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 243 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 244 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 245 |  |  | 	/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 246 |  |  | 	 * Asks the wpcom API for the current message to display keyed on query string and message path | 
            
                                                                                                            
                            
            
                                    
            
            
                | 247 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 248 |  |  | 	 * @param $message_path string The message path to ask for | 
            
                                                                                                            
                            
            
                                    
            
            
                | 249 |  |  | 	 * @param $query string The query string originally from the front end | 
            
                                                                                                            
                            
            
                                    
            
            
                | 250 |  |  | 	 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 251 |  |  | 	 * @return array The JITM's to show, or an empty array if there is nothing to show | 
            
                                                                                                            
                            
            
                                    
            
            
                | 252 |  |  | 	 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 253 |  |  | 	function get_messages( $message_path, $query ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 254 |  |  | 		// custom filters go here | 
            
                                                                                                            
                            
            
                                    
            
            
                | 255 |  |  | 		add_filter( 'jitm_woocommerce_services_msg', array( 'Jetpack_JITM', 'jitm_woocommerce_services_msg' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 256 |  |  | 		add_filter( 'jitm_jetpack_woo_services_install', array( 'Jetpack_JITM', 'jitm_jetpack_woo_services_install' ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 257 |  |  | 		add_filter( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 258 |  |  | 			'jitm_jetpack_woo_services_activate', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 259 |  |  | 			array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 260 |  |  | 				'Jetpack_JITM', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 261 |  |  | 				'jitm_jetpack_woo_services_activate', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 262 |  |  | 			) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 263 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 264 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 265 |  |  | 		$user = wp_get_current_user(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 266 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 267 |  |  | 		// unauthenticated or invalid requests just bail | 
            
                                                                                                            
                            
            
                                    
            
            
                | 268 |  |  | 		if ( ! $user ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 269 |  |  | 			return array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 270 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 271 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 272 |  |  | 		require_once JETPACK__PLUGIN_DIR . 'class.jetpack-client.php'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 273 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 274 |  |  | 		$site_id = \Jetpack_Options::get_option( 'id' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 275 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 276 |  |  | 		// build our jitm request | 
            
                                                                                                            
                            
            
                                    
            
            
                | 277 |  |  | 		$path = add_query_arg( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 278 |  |  | 			array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 279 |  |  | 				'external_user_id' => urlencode_deep( $user->ID ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 280 |  |  | 				'query_string'     => urlencode_deep( $query ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 281 |  |  | 				'mobile_browser'   => jetpack_is_mobile( 'smart' ) ? 1 : 0, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 282 |  |  | 				'_locale'          => get_user_locale(), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 283 |  |  | 			), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 284 |  |  | 			sprintf( '/sites/%d/jitm/%s', $site_id, $message_path ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 285 |  |  | 		); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 286 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 287 |  |  | 		// attempt to get from cache | 
            
                                                                                                            
                            
            
                                    
            
            
                | 288 |  |  | 		$envelopes = get_transient( 'jetpack_jitm_' . substr( md5( $path ), 0, 31 ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 289 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 290 |  |  | 		// if something is in the cache and it was put in the cache after the last sync we care about, use it | 
            
                                                                                                            
                            
            
                                    
            
            
                | 291 |  |  | 		$use_cache = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 292 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 293 |  |  | 		/** This filter is documented in class.jetpack.php */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 294 |  |  | 		if ( apply_filters( 'jetpack_just_in_time_msg_cache', false ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 295 |  |  | 			$use_cache = true; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 296 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 297 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 298 |  |  | 		if ( $use_cache ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 299 |  |  | 			$last_sync  = (int) get_transient( 'jetpack_last_plugin_sync' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 300 |  |  | 			$from_cache = $envelopes && $last_sync > 0 && $last_sync < $envelopes['last_response_time']; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 301 |  |  | 		} else { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 302 |  |  | 			$from_cache = false; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 303 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 304 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 305 |  |  | 		// otherwise, ask again | 
            
                                                                                                            
                            
            
                                    
            
            
                | 306 |  |  | 		if ( ! $from_cache ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 307 |  |  | 			$wpcom_response = \Jetpack_Client::wpcom_json_api_request_as_blog( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 308 |  |  | 				$path, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 309 |  |  | 				'2', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 310 |  |  | 				array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 311 |  |  | 					'user_id'    => $user->ID, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 312 |  |  | 					'user_roles' => implode( ',', $user->roles ), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 313 |  |  | 				), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 314 |  |  | 				null, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 315 |  |  | 				'wpcom' | 
            
                                                                                                            
                            
            
                                    
            
            
                | 316 |  |  | 			); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 317 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 318 |  |  | 			// silently fail...might be helpful to track it? | 
            
                                                                                                            
                            
            
                                    
            
            
                | 319 |  |  | 			if ( is_wp_error( $wpcom_response ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 320 |  |  | 				return array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 321 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 322 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 323 |  |  | 			$envelopes = json_decode( $wpcom_response['body'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 324 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 325 |  |  | 			if ( ! is_array( $envelopes ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 326 |  |  | 				return array(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 327 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 328 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 329 |  |  | 			$expiration = isset( $envelopes[0] ) ? $envelopes[0]->ttl : 300; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 330 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 331 |  |  | 			// do not cache if expiration is 0 or we're not using the cache | 
            
                                                                                                            
                            
            
                                    
            
            
                | 332 |  |  | 			if ( 0 != $expiration && $use_cache ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 333 |  |  | 				$envelopes['last_response_time'] = time(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 334 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 335 |  |  | 				set_transient( 'jetpack_jitm_' . substr( md5( $path ), 0, 31 ), $envelopes, $expiration ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 336 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 337 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 338 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 339 |  |  | 		$hidden_jitms = \Jetpack_Options::get_option( 'hide_jitm' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 340 |  |  | 		unset( $envelopes['last_response_time'] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 341 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 342 |  |  | 		/** | 
            
                                                                                                            
                            
            
                                    
            
            
                | 343 |  |  | 		 * Allow adding your own custom JITMs after a set of JITMs has been received. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 344 |  |  | 		 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 345 |  |  | 		 * @since 6.9.0 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 346 |  |  | 		 * | 
            
                                                                                                            
                            
            
                                    
            
            
                | 347 |  |  | 		 * @param array $envelopes array of existing JITMs. | 
            
                                                                                                            
                            
            
                                    
            
            
                | 348 |  |  | 		 */ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 349 |  |  | 		$envelopes = apply_filters( 'jetpack_jitm_received_envelopes', $envelopes ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 350 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 351 |  |  | 		foreach ( $envelopes as $idx => &$envelope ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 352 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 353 |  |  | 			$dismissed_feature = isset( $hidden_jitms[ $envelope->feature_class ] ) && is_array( $hidden_jitms[ $envelope->feature_class ] ) ? $hidden_jitms[ $envelope->feature_class ] : null; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 354 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 355 |  |  | 			// if the this feature class has been dismissed and the request has not passed the ttl, skip it as it's been dismissed | 
            
                                                                                                            
                            
            
                                    
            
            
                | 356 |  |  | 			if ( is_array( $dismissed_feature ) && ( time() - $dismissed_feature['last_dismissal'] < $envelope->expires || $dismissed_feature['number'] >= $envelope->max_dismissal ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 357 |  |  | 				unset( $envelopes[ $idx ] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 358 |  |  | 				continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 359 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 360 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 361 |  |  | 			JetpackTracking::record_user_event( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 362 |  |  | 				'jitm_view_client', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 363 |  |  | 				array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 364 |  |  | 					'jitm_id' => $envelope->id, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 365 |  |  | 				) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 366 |  |  | 			); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 367 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 368 |  |  | 			$normalized_site_url = \Jetpack::build_raw_urls( get_home_url() ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 369 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 370 |  |  | 			$url_params = array( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 371 |  |  | 				'source' => "jitm-$envelope->id", | 
            
                                                                                                            
                            
            
                                    
            
            
                | 372 |  |  | 				'site'   => $normalized_site_url, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 373 |  |  | 				'u'      => $user->ID, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 374 |  |  | 			); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 375 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 376 |  |  | 			if ( ! class_exists( 'Jetpack_Affiliate' ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 377 |  |  | 				require_once JETPACK__PLUGIN_DIR . 'class.jetpack-affiliate.php'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 378 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 379 |  |  | 			// Get affiliate code and add it to the array of URL parameters | 
            
                                                                                                            
                            
            
                                    
            
            
                | 380 |  |  | 			if ( '' !== ( $aff = \Jetpack_Affiliate::init()->get_affiliate_code() ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 381 |  |  | 				$url_params['aff'] = $aff; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 382 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 383 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 384 |  |  | 			$envelope->url = add_query_arg( $url_params, 'https://jetpack.com/redirect/' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 385 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 386 |  |  | 			$envelope->jitm_stats_url = \Jetpack::build_stats_url( array( 'x_jetpack-jitm' => $envelope->id ) ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 387 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 388 |  |  | 			if ( $envelope->CTA->hook ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 389 |  |  | 				$envelope->url = apply_filters( 'jitm_' . $envelope->CTA->hook, $envelope->url ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 390 |  |  | 				unset( $envelope->CTA->hook ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 391 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 392 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 393 |  |  | 			if ( isset( $envelope->content->hook ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 394 |  |  | 				$envelope->content = apply_filters( 'jitm_' . $envelope->content->hook, $envelope->content ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 395 |  |  | 				unset( $envelope->content->hook ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 396 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 397 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 398 |  |  | 			// no point in showing an empty message | 
            
                                                                                                            
                            
            
                                    
            
            
                | 399 |  |  | 			if ( empty( $envelope->content->message ) ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 400 |  |  | 				unset( $envelopes[ $idx ] ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 401 |  |  | 				continue; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 402 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 403 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 404 |  |  | 			switch ( $envelope->content->icon ) { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 405 |  |  | 				case 'jetpack': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 406 |  |  | 					$jetpack_logo            = new Jetpack_Logo(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 407 |  |  | 					$envelope->content->icon = '<div class="jp-emblem">' . $jetpack_logo->get_jp_emblem() . '</div>'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 408 |  |  | 					break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 409 |  |  | 				case 'woocommerce': | 
            
                                                                                                            
                            
            
                                    
            
            
                | 410 |  |  | 					$envelope->content->icon = '<div class="jp-emblem"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 168 100" xml:space="preserve" enable-background="new 0 0 168 100" width="50" height="30"><style type="text/css"> | 
            
                                                                                                            
                            
            
                                    
            
            
                | 411 |  |  | 					.st0{clip-path:url(#SVGID_2_);enable-background:new    ;} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 412 |  |  | 					.st1{clip-path:url(#SVGID_4_);} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 413 |  |  | 					.st2{clip-path:url(#SVGID_6_);} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 414 |  |  | 					.st3{clip-path:url(#SVGID_8_);fill:#8F567F;} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 415 |  |  | 					.st4{clip-path:url(#SVGID_10_);fill:#FFFFFE;} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 416 |  |  | 					.st5{clip-path:url(#SVGID_12_);fill:#FFFFFE;} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 417 |  |  | 					.st6{clip-path:url(#SVGID_14_);fill:#FFFFFE;} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 418 |  |  | 				</style><g><defs><polygon id="SVGID_1_" points="83.8 100 0 100 0 0.3 83.8 0.3 167.6 0.3 167.6 100 "/></defs><clipPath id="SVGID_2_"><use xlink:href="#SVGID_1_" overflow="visible"/></clipPath><g class="st0"><g><defs><rect id="SVGID_3_" width="168" height="100"/></defs><clipPath id="SVGID_4_"><use xlink:href="#SVGID_3_" overflow="visible"/></clipPath><g class="st1"><defs><path id="SVGID_5_" d="M15.6 0.3H152c8.6 0 15.6 7 15.6 15.6v52c0 8.6-7 15.6-15.6 15.6h-48.9l6.7 16.4L80.2 83.6H15.6C7 83.6 0 76.6 0 67.9v-52C0 7.3 7 0.3 15.6 0.3"/></defs><clipPath id="SVGID_6_"><use xlink:href="#SVGID_5_" overflow="visible"/></clipPath><g class="st2"><defs><rect id="SVGID_7_" width="168" height="100"/></defs><clipPath id="SVGID_8_"><use xlink:href="#SVGID_7_" overflow="visible"/></clipPath><rect x="-10" y="-9.7" class="st3" width="187.6" height="119.7"/></g></g></g></g></g><g><defs><path id="SVGID_9_" d="M8.4 14.5c1-1.3 2.4-2 4.3-2.1 3.5-0.2 5.5 1.4 6 4.9 2.1 14.3 4.4 26.4 6.9 36.4l15-28.6c1.4-2.6 3.1-3.9 5.2-4.1 3-0.2 4.9 1.7 5.6 5.7 1.7 9.1 3.9 16.9 6.5 23.4 1.8-17.4 4.8-30 9-37.7 1-1.9 2.5-2.9 4.5-3 1.6-0.1 3 0.3 4.3 1.4 1.3 1 2 2.3 2.1 3.9 0.1 1.2-0.1 2.3-0.7 3.3 -2.7 5-4.9 13.2-6.6 24.7 -1.7 11.1-2.3 19.8-1.9 26.1 0.1 1.7-0.1 3.2-0.8 4.5 -0.8 1.5-2 2.4-3.7 2.5 -1.8 0.1-3.6-0.7-5.4-2.5C52.4 66.7 47.4 57 43.7 44.1c-4.4 8.8-7.7 15.3-9.9 19.7 -4 7.7-7.5 11.7-10.3 11.9 -1.9 0.1-3.5-1.4-4.8-4.7 -3.5-9-7.3-26.3-11.3-52C7.1 17.3 7.5 15.8 8.4 14.5"/></defs><clipPath id="SVGID_10_"><use xlink:href="#SVGID_9_" overflow="visible"/></clipPath><rect x="-2.7" y="-0.6" class="st4" width="90.6" height="86.4"/></g><g><defs><path id="SVGID_11_" d="M155.6 25.2c-2.5-4.3-6.1-6.9-11-7.9 -1.3-0.3-2.5-0.4-3.7-0.4 -6.6 0-11.9 3.4-16.1 10.2 -3.6 5.8-5.3 12.3-5.3 19.3 0 5.3 1.1 9.8 3.3 13.6 2.5 4.3 6.1 6.9 11 7.9 1.3 0.3 2.5 0.4 3.7 0.4 6.6 0 12-3.4 16.1-10.2 3.6-5.9 5.3-12.4 5.3-19.4C159 33.4 157.9 28.9 155.6 25.2zM147 44.2c-0.9 4.5-2.7 7.9-5.2 10.1 -2 1.8-3.9 2.5-5.5 2.2 -1.7-0.3-3-1.8-4-4.4 -0.8-2.1-1.2-4.2-1.2-6.2 0-1.7 0.2-3.4 0.5-5 0.6-2.8 1.8-5.5 3.6-8.1 2.3-3.3 4.7-4.8 7.1-4.2 1.7 0.3 3 1.8 4 4.4 0.8 2.1 1.2 4.2 1.2 6.2C147.5 40.9 147.3 42.6 147 44.2z"/></defs><clipPath id="SVGID_12_"><use xlink:href="#SVGID_11_" overflow="visible"/></clipPath><rect x="109.6" y="6.9" class="st5" width="59.4" height="71.4"/></g><g><defs><path id="SVGID_13_" d="M112.7 25.2c-2.5-4.3-6.1-6.9-11-7.9 -1.3-0.3-2.5-0.4-3.7-0.4 -6.6 0-11.9 3.4-16.1 10.2 -3.5 5.8-5.3 12.3-5.3 19.3 0 5.3 1.1 9.8 3.3 13.6 2.5 4.3 6.1 6.9 11 7.9 1.3 0.3 2.5 0.4 3.7 0.4 6.6 0 12-3.4 16.1-10.2 3.5-5.9 5.3-12.4 5.3-19.4C116 33.4 114.9 28.9 112.7 25.2zM104.1 44.2c-0.9 4.5-2.7 7.9-5.2 10.1 -2 1.8-3.9 2.5-5.5 2.2 -1.7-0.3-3-1.8-4-4.4 -0.8-2.1-1.2-4.2-1.2-6.2 0-1.7 0.2-3.4 0.5-5 0.6-2.8 1.8-5.5 3.6-8.1 2.3-3.3 4.7-4.8 7.1-4.2 1.7 0.3 3 1.8 4 4.4 0.8 2.1 1.2 4.2 1.2 6.2C104.6 40.9 104.4 42.6 104.1 44.2z"/></defs><clipPath id="SVGID_14_"><use xlink:href="#SVGID_13_" overflow="visible"/></clipPath><rect x="66.7" y="6.9" class="st6" width="59.4" height="71.4"/></g></svg></div>'; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 419 |  |  | 					break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 420 |  |  | 				default: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 421 |  |  | 					$envelope->content->icon = ''; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 422 |  |  | 					break; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 423 |  |  | 			} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 424 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 425 |  |  | 			$jetpack = \Jetpack::init(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 426 |  |  | 			$jetpack->stat( 'jitm', $envelope->id . '-viewed-' . JETPACK__VERSION ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 427 |  |  | 			$jetpack->do_stats( 'server_side' ); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 428 |  |  | 		} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 429 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 430 |  |  | 		return $envelopes; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 431 |  |  | 	} | 
            
                                                                                                            
                            
            
                                    
            
            
                | 432 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 433 |  |  | 	public function is_prepare_jitms_callback_added() { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 434 |  |  | 		return $this->is_prepare_jitms_callback_added; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 435 |  |  | 	} | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 436 |  |  | } | 
            
                                                        
            
                                    
            
            
                | 437 |  |  |  |