is_development_version() public static method

Whether Jetpack's version maps to a public release, or a development version.
public static is_development_version ( )
Beispiel #1
0
function twentyfifteen_init_jetpack()
{
    /**
     * Add our compat CSS file for custom widget stylings and such.
     * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production.
     */
    $version = Jetpack::is_development_version() ? filemtime(plugin_dir_path(__FILE__) . 'twentyfifteen.css') : JETPACK__VERSION;
    wp_enqueue_style('twentyfifteen-jetpack', plugins_url('twentyfifteen.css', __FILE__), array(), $version);
    wp_style_add_data('twentyfifteen-jetpack', 'rtl', 'replace');
}
Beispiel #2
0
function twentysixteen_init_jetpack()
{
    /**
     * Add our compat CSS file for custom widget stylings and such.
     * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production
     * or skip it entirely for wpcom.
     */
    $version = false;
    if (method_exists('Jetpack', 'is_development_version')) {
        $version = Jetpack::is_development_version() ? filemtime(plugin_dir_path(__FILE__) . 'twentysixteen.css') : JETPACK__VERSION;
    }
    wp_enqueue_style('twentysixteen-jetpack', plugins_url('twentysixteen.css', __FILE__), array(), $version);
    wp_style_add_data('twentysixteen-jetpack', 'rtl', 'replace');
}
 /**
  * This methods removes all of the registered css files on the frontend
  * from Jetpack in favor of using a single file. In effect "imploding"
  * all the files into one file.
  *
  * Pros:
  * - Uses only ONE css asset connection instead of 15
  * - Saves a minimum of 56k
  * - Reduces server load
  * - Reduces time to first painted byte
  *
  * Cons:
  * - Loads css for ALL modules. However all selectors are prefixed so it
  *		should not cause any issues with themes.
  * - Plugins/themes dequeuing styles no longer do anything. See
  *		jetpack_implode_frontend_css filter for a workaround
  *
  * For some situations developers may wish to disable css imploding and
  * instead operate in legacy mode where each file loads seperately and
  * can be edited individually or dequeued. This can be accomplished with
  * the following line:
  *
  * add_filter( 'jetpack_implode_frontend_css', '__return_false' );
  *
  * @since 3.2
  **/
 public function implode_frontend_css($travis_test = false)
 {
     $do_implode = true;
     if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) {
         $do_implode = false;
     }
     /**
      * Allow CSS to be concatenated into a single jetpack.css file.
      *
      * @since 3.2.0
      *
      * @param bool $do_implode Should CSS be concatenated? Default to true.
      */
     $do_implode = apply_filters('jetpack_implode_frontend_css', $do_implode);
     // Do not use the imploded file when default behaviour was altered through the filter
     if (!$do_implode) {
         return;
     }
     // We do not want to use the imploded file in dev mode, or if not connected
     if (Jetpack::is_development_mode() || !self::is_active()) {
         if (!$travis_test) {
             return;
         }
     }
     // Do not use the imploded file if sharing css was dequeued via the sharing settings screen
     if (get_option('sharedaddy_disable_resources')) {
         return;
     }
     /*
      * Now we assume Jetpack is connected and able to serve the single
      * file.
      *
      * In the future there will be a check here to serve the file locally
      * or potentially from the Jetpack CDN
      *
      * For now:
      * - Enqueue a single imploded css file
      * - Zero out the style_loader_tag for the bundled ones
      * - Be happy, drink scotch
      */
     add_filter('style_loader_tag', array($this, 'concat_remove_style_loader_tag'), 10, 2);
     $version = Jetpack::is_development_version() ? filemtime(JETPACK__PLUGIN_DIR . 'css/jetpack.css') : JETPACK__VERSION;
     wp_enqueue_style('jetpack_css', plugins_url('css/jetpack.css', __FILE__), array(), $version);
     wp_style_add_data('jetpack_css', 'rtl', 'replace');
 }
    public static function jetpack_debug_display_handler()
    {
        if (!current_user_can('manage_options')) {
            wp_die(esc_html__('You do not have sufficient permissions to access this page.', 'jetpack'));
        }
        $current_user = wp_get_current_user();
        $user_id = get_current_user_id();
        $user_tokens = Jetpack_Options::get_option('user_tokens');
        if (is_array($user_tokens) && array_key_exists($user_id, $user_tokens)) {
            $user_token = $user_tokens[$user_id];
        } else {
            $user_token = '[this user has no token]';
        }
        unset($user_tokens);
        $debug_info = "\r\n";
        foreach (array('CLIENT_ID' => 'id', 'BLOG_TOKEN' => 'blog_token', 'MASTER_USER' => 'master_user', 'CERT' => 'fallback_no_verify_ssl_certs', 'TIME_DIFF' => 'time_diff', 'VERSION' => 'version', 'OLD_VERSION' => 'old_version', 'PUBLIC' => 'public') as $label => $option_name) {
            $debug_info .= "\r\n" . esc_html($label . ": " . Jetpack_Options::get_option($option_name));
        }
        $debug_info .= "\r\n" . esc_html("USER_ID: " . $user_id);
        $debug_info .= "\r\n" . esc_html("USER_TOKEN: " . $user_token);
        $debug_info .= "\r\n" . esc_html("PHP_VERSION: " . PHP_VERSION);
        $debug_info .= "\r\n" . esc_html("WORDPRESS_VERSION: " . $GLOBALS['wp_version']);
        $debug_info .= "\r\n" . esc_html("JETPACK__VERSION: " . JETPACK__VERSION);
        $debug_info .= "\r\n" . esc_html("JETPACK__PLUGIN_DIR: " . JETPACK__PLUGIN_DIR);
        $debug_info .= "\r\n" . esc_html("SITE_URL: " . site_url());
        $debug_info .= "\r\n" . esc_html("HOME_URL: " . home_url());
        $debug_info .= "\r\n";
        require_once JETPACK__PLUGIN_DIR . 'sync/class.jetpack-sync-modules.php';
        $sync_module = Jetpack_Sync_Modules::get_module('full-sync');
        $sync_statuses = $sync_module->get_status();
        $human_readable_sync_status = array();
        foreach ($sync_statuses as $sync_status => $sync_status_value) {
            $human_readable_sync_status[$sync_status] = in_array($sync_status, array('started', 'queue_finished', 'send_started', 'finished')) ? date('r', $sync_status_value) : $sync_status_value;
        }
        $debug_info .= "\r\n" . sprintf(esc_html__('Jetpack Sync Full Status: `%1$s`', 'jetpack'), print_r($human_readable_sync_status, 1));
        require_once JETPACK__PLUGIN_DIR . 'sync/class.jetpack-sync-sender.php';
        $queue = Jetpack_Sync_Sender::get_instance()->get_sync_queue();
        $debug_info .= "\r\n" . sprintf(esc_html__('Sync Queue size: %1$s', 'jetpack'), $queue->size());
        $debug_info .= "\r\n" . sprintf(esc_html__('Sync Queue lag: %1$s', 'jetpack'), self::seconds_to_time($queue->lag()));
        $full_sync_queue = Jetpack_Sync_Sender::get_instance()->get_full_sync_queue();
        $debug_info .= "\r\n" . sprintf(esc_html__('Full Sync Queue size: %1$s', 'jetpack'), $full_sync_queue->size());
        $debug_info .= "\r\n" . sprintf(esc_html__('Full Sync Queue lag: %1$s', 'jetpack'), self::seconds_to_time($full_sync_queue->lag()));
        $debug_info .= "\r\n";
        foreach (array('HTTP_HOST', 'SERVER_PORT', 'HTTPS', 'GD_PHP_HANDLER', 'HTTP_AKAMAI_ORIGIN_HOP', 'HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_FASTLY_CLIENT_IP', 'HTTP_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_INCAP_CLIENT_IP', 'HTTP_TRUE_CLIENT_IP', 'HTTP_X_CLIENTIP', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_X_FORWARDED', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_IP_TRAIL', 'HTTP_X_REAL_IP', 'HTTP_X_VARNISH', 'REMOTE_ADDR') as $header) {
            if (isset($_SERVER[$header])) {
                $debug_info .= "\r\n" . esc_html($header . ": " . $_SERVER[$header]);
            }
        }
        $debug_info .= "\r\n" . esc_html("PROTECT_TRUSTED_HEADER: " . json_encode(get_site_option('trusted_ip_header')));
        $debug_info .= "\r\n\r\nTEST RESULTS:\r\n\r\n";
        $debug_raw_info = '';
        $tests = array();
        $tests['HTTP']['result'] = wp_remote_get(preg_replace('/^https:/', 'http:', JETPACK__API_BASE) . 'test/1/');
        $tests['HTTP']['fail_message'] = esc_html__('Your site isn’t reaching the Jetpack servers.', 'jetpack');
        $tests['HTTPS']['result'] = wp_remote_get(preg_replace('/^http:/', 'https:', JETPACK__API_BASE) . 'test/1/');
        $tests['HTTPS']['fail_message'] = esc_html__('Your site isn’t securely reaching the Jetpack servers.', 'jetpack');
        $identity_crisis_message = '';
        if ($identity_crisis = Jetpack::check_identity_crisis(true)) {
            foreach ($identity_crisis as $key => $value) {
                $identity_crisis_message .= sprintf(__('Your `%1$s` option is set up as `%2$s`, but your WordPress.com connection lists it as `%3$s`!', 'jetpack'), $key, (string) get_option($key), $value) . "\r\n";
            }
            $identity_crisis = new WP_Error('identity-crisis', $identity_crisis_message, $identity_crisis);
        } else {
            $identity_crisis = 'PASS';
        }
        $tests['IDENTITY_CRISIS']['result'] = $identity_crisis;
        $tests['IDENTITY_CRISIS']['fail_message'] = esc_html__('Something has gotten mixed up in your Jetpack Connection!', 'jetpack');
        $self_xml_rpc_url = home_url('xmlrpc.php');
        $testsite_url = Jetpack::fix_url_for_bad_hosts(JETPACK__API_BASE . 'testsite/1/?url=');
        add_filter('http_request_timeout', array('Jetpack_Debugger', 'jetpack_increase_timeout'));
        $tests['SELF']['result'] = wp_remote_get($testsite_url . $self_xml_rpc_url);
        if (is_wp_error($tests['SELF']['result']) && 0 == strpos($tests['SELF']['result']->get_error_message(), 'Operation timed out')) {
            $tests['SELF']['fail_message'] = esc_html__('Your site did not get a response from our debugging service in the expected timeframe. If you are not experiencing other issues, this could be due to a slow connection between your site and our server.', 'jetpack');
        } else {
            $tests['SELF']['fail_message'] = esc_html__('It looks like your site can not communicate properly with Jetpack.', 'jetpack');
        }
        remove_filter('http_request_timeout', array('Jetpack_Debugger', 'jetpack_increase_timeout'));
        ?>
		<div class="wrap">
			<h2><?php 
        esc_html_e('Jetpack Debugging Center', 'jetpack');
        ?>
</h2>
			<h3><?php 
        _e("Testing your site's compatibility with Jetpack...", 'jetpack');
        ?>
</h3>
			<div class="jetpack-debug-test-container">
			<?php 
        ob_start();
        foreach ($tests as $test_name => $test_info) {
            if ('PASS' !== $test_info['result'] && (is_wp_error($test_info['result']) || false == ($response_code = wp_remote_retrieve_response_code($test_info['result'])) || '200' != $response_code)) {
                $debug_info .= $test_name . ": FAIL\r\n";
                ?>
					<div class="jetpack-test-error">
						<p>
							<a class="jetpack-test-heading" href="#"><?php 
                echo $test_info['fail_message'];
                ?>
							<span class="noticon noticon-collapse"></span>
							</a>
						</p>
						<pre class="jetpack-test-details"><?php 
                echo esc_html($test_name);
                ?>
:
	<?php 
                echo esc_html(is_wp_error($test_info['result']) ? $test_info['result']->get_error_message() : print_r($test_info['result'], 1));
                ?>
</pre>
					</div><?php 
            } else {
                $debug_info .= $test_name . ": PASS\r\n";
            }
            $debug_raw_info .= "\r\n\r\n" . $test_name . "\r\n" . esc_html(is_wp_error($test_info['result']) ? $test_info['result']->get_error_message() : print_r($test_info['result'], 1));
            ?>
			<?php 
        }
        $html = ob_get_clean();
        if ('' == trim($html)) {
            echo '<div class="jetpack-tests-succed">' . esc_html__('Your Jetpack setup looks a-okay!', 'jetpack') . '</div>';
        } else {
            echo '<h3>' . esc_html__('There seems to be a problem with your site’s ability to communicate with Jetpack!', 'jetpack') . '</h3>';
            echo $html;
        }
        $debug_info .= "\r\n\r\nRAW TEST RESULTS:" . $debug_raw_info . "\r\n";
        ?>
			</div>
			<div class="entry-content">
				<h3><?php 
        esc_html_e('Trouble with Jetpack?', 'jetpack');
        ?>
</h3>
				<h4><?php 
        esc_html_e('It may be caused by one of these issues, which you can diagnose yourself:', 'jetpack');
        ?>
</h4>
				<ol>
					<li><b><em><?php 
        esc_html_e('A known issue.', 'jetpack');
        ?>
</em></b>  <?php 
        echo sprintf(__('Some themes and plugins have <a href="%1$s" target="_blank">known conflicts</a> with Jetpack – check the <a href="%2$s" target="_blank">list</a>. (You can also browse the <a href="%3$s" target="_blank">Jetpack support pages</a> or <a href="%4$s" target="_blank">Jetpack support forum</a> to see if others have experienced and solved the problem.)', 'jetpack'), 'http://jetpack.com/support/getting-started-with-jetpack/known-issues/', 'http://jetpack.com/support/getting-started-with-jetpack/known-issues/', 'http://jetpack.com/support/', 'https://wordpress.org/support/plugin/jetpack');
        ?>
</li>
					<li><b><em><?php 
        esc_html_e('An incompatible plugin.', 'jetpack');
        ?>
</em></b>  <?php 
        esc_html_e("Find out by disabling all plugins except Jetpack. If the problem persists, it's not a plugin issue. If the problem is solved, turn your plugins on one by one until the problem pops up again – there's the culprit! Let us know, and we'll try to help.", 'jetpack');
        ?>
</li>
					<li>
						<b><em><?php 
        esc_html_e('A theme conflict.', 'jetpack');
        ?>
</em></b>
						<?php 
        $default_theme = wp_get_theme(WP_DEFAULT_THEME);
        if ($default_theme->exists()) {
            echo esc_html(sprintf(__("If your problem isn't known or caused by a plugin, try activating %s (the default WordPress theme).", 'jetpack'), $default_theme->get('Name')));
        } else {
            esc_html_e("If your problem isn't known or caused by a plugin, try activating the default WordPress theme.", 'jetpack');
        }
        ?>
						<?php 
        esc_html_e("If this solves the problem, something in your theme is probably broken – let the theme's author know.", 'jetpack');
        ?>
					</li>
					<li><b><em><?php 
        esc_html_e('A problem with your XMLRPC file.', 'jetpack');
        ?>
</em></b>  <?php 
        echo sprintf(__('Load your <a href="%s">XMLRPC file</a>. It should say “XML-RPC server accepts POST requests only.” on a line by itself.', 'jetpack'), site_url('xmlrpc.php'));
        ?>
						<ul>
							<li>- <?php 
        esc_html_e("If it's not by itself, a theme or plugin is displaying extra characters. Try steps 2 and 3.", 'jetpack');
        ?>
</li>
							<li>- <?php 
        esc_html_e("If you get a 404 message, contact your web host. Their security may block XMLRPC.", 'jetpack');
        ?>
</li>
						</ul>
					</li>
				</ol>
				<?php 
        if (self::is_jetpack_support_open()) {
            ?>
				<p class="jetpack-show-contact-form"><?php 
            echo sprintf(__('If none of these help you find a solution, <a href="%s">click here to contact Jetpack support</a>. Tell us as much as you can about the issue and what steps you\'ve tried to resolve it, and one of our Happiness Engineers will be in touch to help.', 'jetpack'), Jetpack::admin_url(array('page' => 'jetpack-debugger', 'contact' => true)));
            ?>
				</p>
				<?php 
        }
        ?>
				<?php 
        if (Jetpack::is_active()) {
            ?>
					<hr />
					<div id="connected-user-details">
						<p><?php 
            printf(__('The primary connection is owned by <strong>%s</strong>\'s WordPress.com account.', 'jetpack'), esc_html(Jetpack::get_master_user_email()));
            ?>
</p>
					</div>
				<?php 
        }
        ?>
			</div>
			<div id="contact-message" <?php 
        if (!isset($_GET['contact'])) {
            ?>
  style="display:none" <?php 
        }
        ?>
>
			<?php 
        if (self::is_jetpack_support_open()) {
            ?>
				<form id="contactme" method="post" action="https://jetpack.com/contact-support/">
					<input type="hidden" name="action" value="submit">
					<input type="hidden" name="jetpack" value="needs-service">

					<input type="hidden" name="contact_form" id="contact_form" value="1">
					<input type="hidden" name="blog_url" id="blog_url" value="<?php 
            echo esc_attr(site_url());
            ?>
">
					<?php 
            $subject_line = sprintf(_x('from: %s Jetpack contact form', 'Support request email subject line', 'jetpack'), esc_attr(site_url()));
            if (Jetpack::is_development_version()) {
                $subject_line = 'BETA ' . $subject_line;
            }
            $subject_line_input = printf('<input type="hidden" name="subject" id="subject" value="%s"">', $subject_line);
            ?>
					<div class="formbox">
						<label for="message" class="h"><?php 
            esc_html_e('Please describe the problem you are having.', 'jetpack');
            ?>
</label>
						<textarea name="message" cols="40" rows="7" id="did"></textarea>
					</div>

					<div id="name_div" class="formbox">
						<label class="h" for="your_name"><?php 
            esc_html_e('Name', 'jetpack');
            ?>
</label>
			  			<span class="errormsg"><?php 
            esc_html_e('Let us know your name.', 'jetpack');
            ?>
</span>
						<input name="your_name" type="text" id="your_name" value="<?php 
            esc_html_e($current_user->display_name, 'jetpack');
            ?>
" size="40">
					</div>

					<div id="email_div" class="formbox">
						<label class="h" for="your_email"><?php 
            esc_html_e('E-mail', 'jetpack');
            ?>
</label>
			  			<span class="errormsg"><?php 
            esc_html_e('Use a valid email address.', 'jetpack');
            ?>
</span>
						<input name="your_email" type="text" id="your_email" value="<?php 
            esc_html_e($current_user->user_email, 'jetpack');
            ?>
" size="40">
					</div>

					<div id="toggle_debug_form_info" class="formbox">
						<p><?php 
            _e('The test results and some other useful debug information will be sent to the support team. Please feel free to <a href="#">review/modify</a> this information.', 'jetpack');
            ?>
</p>
					</div>

					<div id="debug_info_form_div" class="formbox" style="display:none">
						<label class="h" for="debug_info"><?php 
            esc_html_e('Debug Info', 'jetpack');
            ?>
</label>
			  			<textarea name="debug_info" cols="40" rows="7" id="debug_form_info"><?php 
            echo esc_attr($debug_info);
            ?>
</textarea>
					</div>

					<div style="clear: both;"></div>

					<div id="blog_div" class="formbox">
						<div id="submit_div" class="contact-support">
						<input type="submit" name="submit" value="<?php 
            esc_html_e('Submit &#187;', 'jetpack');
            ?>
">
						</div>
					</div>
					<div style="clear: both;"></div>
				</form>
			<?php 
        }
        ?>
		</div> <!-- contact-message, hidden by default. -->
		<div id="toggle_debug_info"><a href="#"><?php 
        _e('View Advanced Debug Results', 'jetpack');
        ?>
</a></div>
			<div id="debug_info_div" style="display:none">
			<h4><?php 
        esc_html_e('Debug Info', 'jetpack');
        ?>
</h4>
			<div id="debug_info"><pre><?php 
        echo esc_html($debug_info);
        ?>
</pre></div>
		</div>
		</div>
	<?php 
    }
 function page_admin_scripts()
 {
     if ($this->is_redirecting) {
         return;
         // No need for scripts on a fallback page
     }
     $is_dev_mode = Jetpack::is_development_mode();
     // Enqueue jp.js and localize it
     wp_enqueue_script('react-plugin', plugins_url('_inc/build/admin.js', JETPACK__PLUGIN_FILE), array(), JETPACK__VERSION, true);
     if (!$is_dev_mode) {
         // Required for Analytics
         wp_enqueue_script('jp-tracks', '//stats.wp.com/w.js', array(), gmdate('YW'), true);
     }
     $localeSlug = explode('_', get_locale());
     $localeSlug = $localeSlug[0];
     // Collecting roles that can view site stats
     $stats_roles = array();
     $enabled_roles = function_exists('stats_get_option') ? stats_get_option('roles') : array('administrator');
     foreach (get_editable_roles() as $slug => $role) {
         $stats_roles[$slug] = array('name' => translate_user_role($role['name']), 'canView' => is_array($enabled_roles) ? in_array($slug, $enabled_roles, true) : false);
     }
     $response = rest_do_request(new WP_REST_Request('GET', '/jetpack/v4/module/all'));
     $modules = $response->get_data();
     // Preparing translated fields for JSON encoding by transforming all HTML entities to
     // respective characters.
     foreach ($modules as $slug => $data) {
         $modules[$slug]['name'] = html_entity_decode($data['name']);
         $modules[$slug]['description'] = html_entity_decode($data['description']);
         $modules[$slug]['short_description'] = html_entity_decode($data['short_description']);
         $modules[$slug]['long_description'] = html_entity_decode($data['long_description']);
     }
     // Add objects to be passed to the initial state of the app
     wp_localize_script('react-plugin', 'Initial_State', array('WP_API_root' => esc_url_raw(rest_url()), 'WP_API_nonce' => wp_create_nonce('wp_rest'), 'pluginBaseUrl' => plugins_url('', JETPACK__PLUGIN_FILE), 'connectionStatus' => array('isActive' => Jetpack::is_active(), 'isStaging' => Jetpack::is_staging_site(), 'devMode' => array('isActive' => $is_dev_mode, 'constant' => defined('JETPACK_DEV_DEBUG') && JETPACK_DEV_DEBUG, 'url' => site_url() && false === strpos(site_url(), '.'), 'filter' => apply_filters('jetpack_development_mode', false)), 'isPublic' => '1' == get_option('blog_public'), 'isInIdentityCrisis' => Jetpack::validate_sync_error_idc_option()), 'dismissedNotices' => $this->get_dismissed_jetpack_notices(), 'isDevVersion' => Jetpack::is_development_version(), 'currentVersion' => JETPACK__VERSION, 'happinessGravIds' => jetpack_get_happiness_gravatar_ids(), 'getModules' => $modules, 'showJumpstart' => jetpack_show_jumpstart(), 'rawUrl' => Jetpack::build_raw_urls(get_home_url()), 'adminUrl' => esc_url(admin_url()), 'stats' => array('data' => array('general' => false, 'day' => false, 'week' => false, 'month' => false), 'roles' => $stats_roles), 'settingNames' => array('jetpack_holiday_snow_enabled' => function_exists('jetpack_holiday_snow_option_name') ? jetpack_holiday_snow_option_name() : false), 'userData' => array('currentUser' => jetpack_current_user_data()), 'locale' => $this->get_i18n_data(), 'localeSlug' => $localeSlug, 'jetpackStateNotices' => array('messageCode' => Jetpack::state('message'), 'errorCode' => Jetpack::state('error'), 'errorDescription' => Jetpack::state('error_description')), 'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(), 'currentIp' => function_exists('jetpack_protect_get_ip') ? jetpack_protect_get_ip() : false));
 }
 /**
  * Returns an array of hosts that SSO will redirect to.
  *
  * Instead of accessing JETPACK__API_BASE within the method directly, we set it as the
  * default for $api_base due to restrictions with testing constants in our tests.
  *
  * @since 4.3.0
  *
  * @param array $hosts
  * @param string $api_base
  *
  * @return array
  */
 static function allowed_redirect_hosts($hosts, $api_base = JETPACK__API_BASE)
 {
     if (empty($hosts)) {
         $hosts = array();
     }
     $hosts[] = 'wordpress.com';
     $hosts[] = 'jetpack.wordpress.com';
     if ((Jetpack::is_development_mode() || Jetpack::is_development_version()) && false === strpos($api_base, 'jetpack.wordpress.com/jetpack')) {
         $base_url_parts = parse_url(esc_url_raw($api_base));
         if ($base_url_parts && !empty($base_url_parts['host'])) {
             $hosts[] = $base_url_parts['host'];
         }
     }
     return array_unique($hosts);
 }
Beispiel #7
0
        ?>
</a>
				<?php 
    } elseif ($data['is_connected'] && !$data['is_user_connected'] && current_user_can('jetpack_connect_user')) {
        ?>
					<a href="<?php 
        echo Jetpack::init()->build_connect_url();
        ?>
" class="download-jetpack"><?php 
        esc_html_e('Connect your account', 'jetpack');
        ?>
</a>
				<?php 
    }
    ?>
			</div>
		</div>
	<?php 
}
?>
<div id="deactivate-success"></div>
<?php 
if (Jetpack::is_development_version()) {
    ?>
	<a id="jump-start-deactivate" style="cursor:pointer; display: block; text-align: center; margin-top: 25px;"><?php 
    esc_html_e('RESET EVERYTHING (during testing only) - will reset modules to default as well', 'jetpack');
    ?>
</a>
<?php 
}
// is_development_version
 function test_is_dev_version_false_with_number_dot_number_dot_number()
 {
     Jetpack_Constants::set_constant('JETPACK__VERSION', '4.3.1');
     $this->assertFalse(Jetpack::is_development_version());
 }
 function page_admin_scripts()
 {
     // Enqueue jp.js and localize it
     wp_enqueue_script('react-plugin', plugins_url('_inc/build/admin.js', JETPACK__PLUGIN_FILE), array(), time(), true);
     wp_enqueue_style('dops-css', plugins_url('_inc/build/dops-style.css', JETPACK__PLUGIN_FILE), array(), time());
     wp_enqueue_style('components-css', plugins_url('_inc/build/style.min.css', JETPACK__PLUGIN_FILE), array(), time());
     $localeSlug = explode('_', get_locale());
     $localeSlug = $localeSlug[0];
     // Add objects to be passed to the initial state of the app
     wp_localize_script('react-plugin', 'Initial_State', array('WP_API_root' => esc_url_raw(rest_url()), 'WP_API_nonce' => wp_create_nonce('wp_rest'), 'pluginBaseUrl' => plugins_url('', JETPACK__PLUGIN_FILE), 'connectionStatus' => array('isActive' => Jetpack::is_active(), 'isStaging' => Jetpack::is_staging_site(), 'devMode' => array('isActive' => Jetpack::is_development_mode(), 'constant' => defined('JETPACK_DEV_DEBUG') && JETPACK_DEV_DEBUG, 'url' => site_url() && false === strpos(site_url(), '.'), 'filter' => apply_filters('jetpack_development_mode', false))), 'dismissedNotices' => $this->get_dismissed_jetpack_notices(), 'isDevVersion' => Jetpack::is_development_version(), 'currentVersion' => JETPACK__VERSION, 'happinessGravIds' => jetpack_get_happiness_gravatar_ids(), 'getModules' => Jetpack_Core_Json_Api_Endpoints::get_modules(), 'showJumpstart' => jetpack_show_jumpstart(), 'rawUrl' => Jetpack::build_raw_urls(get_home_url()), 'adminUrl' => esc_url(admin_url()), 'statsData' => build_initial_stats_shape(), 'settingNames' => array('jetpack_holiday_snow_enabled' => function_exists('jetpack_holiday_snow_option_name') ? jetpack_holiday_snow_option_name() : false), 'userData' => array('othersLinked' => jetpack_get_other_linked_users(), 'currentUser' => jetpack_current_user_data()), 'locale' => $this->get_i18n_data(), 'localeSlug' => $localeSlug, 'jetpackStateNotices' => array('messageCode' => Jetpack::state('message'), 'errorCode' => Jetpack::state('error'), 'errorDescription' => Jetpack::state('error_description'))));
 }
Beispiel #10
0
 /**
  * This methods removes all of the registered css files on the frontend
  * from Jetpack in favor of using a single file. In effect "imploding"
  * all the files into one file.
  *
  * Pros:
  * - Uses only ONE css asset connection instead of 15
  * - Saves a minimum of 56k
  * - Reduces server load
  * - Reduces time to first painted byte
  *
  * Cons:
  * - Loads css for ALL modules. However all selectors are prefixed so it
  *		should not cause any issues with themes.
  * - Plugins/themes dequeuing styles no longer do anything. See
  *		jetpack_implode_frontend_css filter for a workaround
  *
  * For some situations developers may wish to disable css imploding and
  * instead operate in legacy mode where each file loads seperately and
  * can be edited individually or dequeued. This can be accomplished with
  * the following line:
  *
  * add_filter( 'jetpack_implode_frontend_css', '__return_false' );
  *
  * @since 3.2
  **/
 public function implode_frontend_css()
 {
     global $wp_styles;
     $do_implode = true;
     if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) {
         $do_implode = false;
     }
     $do_implode = apply_filters('jetpack_implode_frontend_css', $do_implode);
     // Do not use the imploded file when default behaviour was altered through the filter
     if (!$do_implode) {
         return;
     }
     // We do not want to use the imploded file in dev mode
     if (Jetpack::is_development_mode()) {
         return;
     }
     // Do not use the imploded file if sharing css was dequeued via the sharing settings screen
     if (get_option('sharedaddy_disable_resources')) {
         return;
     }
     /*
      * Now we assume Jetpack is connected and able to serve the single
      * file.
      *
      * In the future there will be a check here to serve the file locally
      * or potentially from the Jetpack CDN
      *
      * For now:
      * - Dequeue ALL of the frontend css files
      * - Enqueue a single imploded css file
      * - Be happy, drink scotch
      */
     $to_dequeue = array('jetpack-carousel', 'grunion.css', 'the-neverending-homepage', 'jetpack_likes', 'jetpack_related-posts', 'sharedaddy', 'jetpack-slideshow', 'presentations', 'jetpack-subscriptions', 'tiled-gallery', 'widget-conditions', 'jetpack_display_posts_widget', 'gravatar-profile-widget', 'widget-grid-and-list', 'jetpack-widgets');
     $wp_styles->remove($to_dequeue);
     $version = Jetpack::is_development_version() ? filemtime(JETPACK__PLUGIN_DIR . 'css/jetpack.css') : JETPACK__VERSION;
     wp_enqueue_style('jetpack_css', plugins_url('css/jetpack.css', __FILE__), array(), $version);
     wp_style_add_data('jetpack_css', 'rtl', 'replace');
 }