2014-07-28 14:50:11 +00:00
< ? php
/**
* Admin View : Page - Status Report
*/
2014-07-28 15:16:35 +00:00
if ( ! defined ( 'ABSPATH' ) ) {
exit ; // Exit if accessed directly
}
2014-07-28 14:50:11 +00:00
?>
2014-01-13 11:34:58 +00:00
< div class = " updated woocommerce-message " >
2014-07-18 20:55:14 +00:00
< p >< ? php _e ( 'Please copy and paste this information in your ticket when contacting support:' , 'woocommerce' ); ?> </p>
2015-01-06 10:39:16 +00:00
< p class = " submit " >< a href = " # " class = " button-primary debug-report " >< ? php _e ( 'Get System Report' , 'woocommerce' ); ?> </a>
< a class = " skip button-primary " href = " http://docs.woothemes.com/document/understanding-the-woocommerce-system-status-report/ " target = " _blank " >< ? php _e ( 'Understanding the Status Report' , 'woocommerce' ); ?> </a></p>
2014-07-29 15:06:58 +00:00
< div id = " debug-report " >
< textarea readonly = " readonly " ></ textarea >
< p class = " submit " >< button id = " copy-for-support " class = " button-primary " href = " # " data - tip = " <?php _e( 'Copied!', 'woocommerce' ); ?> " >< ? php _e ( 'Copy for Support' , 'woocommerce' ); ?> </button></p>
</ div >
2013-07-18 14:22:05 +00:00
</ div >
< br />
2014-08-26 17:13:39 +00:00
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-07-18 14:22:05 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " WordPress Environment " >< ? php _e ( 'WordPress Environment' , 'woocommerce' ); ?> </th>
2013-07-18 14:22:05 +00:00
</ tr >
</ thead >
< tbody >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Home URL " >< ? php _e ( 'Home URL' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The URL of your site\'s homepage.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-07-18 14:22:05 +00:00
< td >< ? php echo home_url (); ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Site URL " >< ? php _e ( 'Site URL' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The root URL of your site.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-07-18 14:22:05 +00:00
< td >< ? php echo site_url (); ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " WC Version " >< ? php _e ( 'WC Version' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The version of WooCommerce installed on your site.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-11-25 14:01:32 +00:00
< td >< ? php echo esc_html ( WC () -> version ); ?> </td>
2013-07-18 14:22:05 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " WC Database Version " >< ? php _e ( 'WC Database Version' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The version of WooCommerce that the database is formatted for. This should be the same as your WooCommerce Version.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-07-18 14:22:05 +00:00
< td >< ? php echo esc_html ( get_option ( 'woocommerce_db_version' ) ); ?> </td>
</ tr >
2014-10-18 09:56:58 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Log Directory Writable " >< ? php _e ( 'Log Directory Writable' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Several WooCommerce extension can write logs which makes debugging problems easier. The directory must be writable for this to happen.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php
if ( @ fopen ( WC_LOG_DIR . 'test-log.log' , 'a' ) ) {
2015-01-03 17:45:02 +00:00
echo '<mark class="yes">' . '✔ <code>' . WC_LOG_DIR . '</code></mark> ' ;
2014-10-18 09:56:58 +00:00
} else {
2015-01-03 17:45:02 +00:00
printf ( '<mark class="error">' . '✕ ' . __ ( 'To allow logging, make <code>%s</code> writable or define a custom <code>WC_LOG_DIR</code>.' , 'woocommerce' ) . '</mark>' , WC_LOG_DIR );
2014-10-18 09:56:58 +00:00
}
?> </td>
</ tr >
2013-07-18 14:22:05 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " WP Version " >< ? php _e ( 'WP Version' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The version of WordPress installed on your site.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-09-04 17:13:09 +00:00
< td >< ? php bloginfo ( 'version' ); ?> </td>
2013-07-18 14:25:17 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " WP Multisite " >< ? php _e ( 'WP Multisite' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Whether or not you have WordPress Multisite enabled.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-03 17:45:02 +00:00
< td >< ? php if ( is_multisite () ) echo '✔' ; else echo '–' ; ?> </td>
2013-07-18 14:22:05 +00:00
</ tr >
2014-08-26 16:54:25 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " WP Memory Limit " >< ? php _e ( 'WP Memory Limit' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The maximum amount of memory (RAM) that your site can use at one time.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-07-18 14:22:05 +00:00
< td >< ? php
2013-11-25 13:34:21 +00:00
$memory = wc_let_to_num ( WP_MEMORY_LIMIT );
2013-07-18 14:22:05 +00:00
if ( $memory < 67108864 ) {
2014-10-18 09:56:58 +00:00
echo '<mark class="error">' . sprintf ( __ ( '%s - We recommend setting memory to at least 64MB. See: <a href="%s" target="_blank">Increasing memory allocated to PHP</a>' , 'woocommerce' ), size_format ( $memory ), 'http://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP' ) . '</mark>' ;
2013-07-18 14:22:05 +00:00
} else {
echo '<mark class="yes">' . size_format ( $memory ) . '</mark>' ;
}
?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " WP Debug Mode " >< ? php _e ( 'WP Debug Mode' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Displays whether or not WordPress is in Debug Mode.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-03 17:45:02 +00:00
< td >< ? php if ( defined ( 'WP_DEBUG' ) && WP_DEBUG ) echo '<mark class="yes">' . '✔' . '</mark>' ; else echo '<mark class="no">' . '–' . '</mark>' ; ?> </td>
2013-07-18 14:22:05 +00:00
</ tr >
2013-08-07 21:05:09 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Language " >< ? php _e ( 'Language' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The current language used by WordPress. Default = English' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php echo get_locale () ?> </td>
</ tr >
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2014-10-18 09:56:58 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " Server Environment " >< ? php _e ( 'Server Environment' , 'woocommerce' ); ?> </th>
2013-08-07 21:05:09 +00:00
</ tr >
2014-10-18 09:56:58 +00:00
</ thead >
< tbody >
2013-07-18 14:22:05 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Server Info " >< ? php _e ( 'Server Info' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Information about the web server that is currently hosting your site.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php echo esc_html ( $_SERVER [ 'SERVER_SOFTWARE' ] ); ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " PHP Version " >< ? php _e ( 'PHP Version' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The version of PHP installed on your hosting server.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php if ( function_exists ( 'phpversion' ) ) echo esc_html ( phpversion () ); ?> </td>
2013-07-18 14:22:05 +00:00
</ tr >
< ? php if ( function_exists ( 'ini_get' ) ) : ?>
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " PHP Post Max Size " >< ? php _e ( 'PHP Post Max Size' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The largest filesize that can be contained in one post.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-11-25 13:34:21 +00:00
< td >< ? php echo size_format ( wc_let_to_num ( ini_get ( 'post_max_size' ) ) ); ?> </td>
2013-07-18 14:22:05 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " PHP Time Limit " >< ? php _e ( 'PHP Time Limit' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The amount of time (in seconds) that your site will spend on a single operation before timing out (to avoid server lockups)' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-07-18 14:22:05 +00:00
< td >< ? php echo ini_get ( 'max_execution_time' ); ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " PHP Max Input Vars " >< ? php _e ( 'PHP Max Input Vars' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The maximum number of variables your server can use for a single function to avoid overloads.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-07-18 14:22:05 +00:00
< td >< ? php echo ini_get ( 'max_input_vars' ); ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " SUHOSIN Installed " >< ? php _e ( 'SUHOSIN Installed' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( ' Suhosin is an advanced protection system for PHP installations . It was designed to protect your servers on the one hand against a number of well known problems in PHP applications and on the other hand against potential unknown vulnerabilities within these applications or the PHP core itself .
2014-10-18 09:56:58 +00:00
If enabled on your server , Suhosin may need to be configured to increase its data submission limits . ', ' woocommerce ' ) . ' " >[?]</a>'; ?></td>
2015-01-03 17:45:02 +00:00
< td >< ? php echo extension_loaded ( 'suhosin' ) ? '✔' : '–' ; ?> </td>
2013-07-18 14:22:05 +00:00
</ tr >
< ? php endif ; ?>
2013-09-09 11:20:22 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " MySQL Version " >< ? php _e ( 'MySQL Version' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The version of MySQL installed on your hosting server.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >
< ? php
/** @global wpdb $wpdb */
global $wpdb ;
echo $wpdb -> db_version ();
?>
</ td >
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Max Upload Size " >< ? php _e ( 'Max Upload Size' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The largest filesize that can be uploaded to your WordPress installation.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php echo size_format ( wp_max_upload_size () ); ?> </td>
2013-09-09 11:20:22 +00:00
</ tr >
2013-08-14 18:21:49 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Default Timezone is UTC " >< ? php _e ( 'Default Timezone is UTC' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The default timezone for your server.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2013-08-14 18:21:49 +00:00
< td >< ? php
$default_timezone = date_default_timezone_get ();
if ( 'UTC' !== $default_timezone ) {
2015-01-03 17:45:02 +00:00
echo '<mark class="error">' . '✕ ' . sprintf ( __ ( 'Default timezone is %s - it should be UTC' , 'woocommerce' ), $default_timezone ) . '</mark>' ;
2013-08-14 18:21:49 +00:00
} else {
2015-01-03 17:45:02 +00:00
echo '<mark class="yes">' . '✔' . '</mark>' ;
2013-08-14 18:21:49 +00:00
} ?>
</ td >
</ tr >
2013-07-18 14:22:05 +00:00
< ? php
$posting = array ();
// fsockopen/cURL
2015-01-03 17:45:02 +00:00
$posting [ 'fsockopen_curl' ][ 'name' ] = 'fsockopen/cURL' ;
$posting [ 'fsockopen_curl' ][ 'help' ] = '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Payment gateways can use cURL to communicate with remote servers to authorize payments, other plugins may also use it when communicating with remote services.' , 'woocommerce' ) . '">[?]</a>' ;
2013-07-18 14:22:05 +00:00
if ( function_exists ( 'fsockopen' ) || function_exists ( 'curl_init' ) ) {
$posting [ 'fsockopen_curl' ][ 'success' ] = true ;
} else {
$posting [ 'fsockopen_curl' ][ 'success' ] = false ;
2015-01-03 17:45:02 +00:00
$posting [ 'fsockopen_curl' ][ 'note' ] = __ ( 'Your server does not have fsockopen or cURL enabled - PayPal IPN and other scripts which communicate with other servers will not work. Contact your hosting provider.' , 'woocommerce' ) . '</mark>' ;
2013-07-18 14:22:05 +00:00
}
// SOAP
2015-01-03 17:45:02 +00:00
$posting [ 'soap_client' ][ 'name' ] = 'SoapClient' ;
$posting [ 'soap_client' ][ 'help' ] = '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Some webservices like shipping use SOAP to get information from remote servers, for example, live shipping quotes from FedEx require SOAP to be installed.' , 'woocommerce' ) . '">[?]</a>' ;
2013-07-18 14:22:05 +00:00
if ( class_exists ( 'SoapClient' ) ) {
$posting [ 'soap_client' ][ 'success' ] = true ;
} else {
$posting [ 'soap_client' ][ 'success' ] = false ;
2015-01-03 17:45:02 +00:00
$posting [ 'soap_client' ][ 'note' ] = sprintf ( __ ( 'Your server does not have the <a href="%s">SOAP Client</a> class enabled - some gateway plugins which use SOAP may not work as expected.' , 'woocommerce' ), 'http://php.net/manual/en/class.soapclient.php' ) . '</mark>' ;
2013-07-18 14:22:05 +00:00
}
// WP Remote Post Check
2014-10-21 15:38:03 +00:00
$posting [ 'wp_remote_post' ][ 'name' ] = __ ( 'Remote Post' , 'woocommerce' );
$posting [ 'wp_remote_post' ][ 'help' ] = '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'PayPal uses this method of commnuicating when sending back transaction information.' , 'woocommerce' ) . '">[?]</a>' ;
$response = wp_remote_post ( 'https://www.paypal.com/cgi-bin/webscr' , array (
2014-10-18 09:56:58 +00:00
'sslverify' => false ,
'timeout' => 60 ,
'user-agent' => 'WooCommerce/' . WC () -> version ,
2014-10-21 15:38:03 +00:00
'body' => array (
'cmd' => '_notify-validate'
)
) );
2013-07-18 14:22:05 +00:00
if ( ! is_wp_error ( $response ) && $response [ 'response' ][ 'code' ] >= 200 && $response [ 'response' ][ 'code' ] < 300 ) {
$posting [ 'wp_remote_post' ][ 'success' ] = true ;
} else {
2014-10-21 15:38:03 +00:00
$posting [ 'wp_remote_post' ][ 'note' ] = __ ( 'wp_remote_post() failed. PayPal IPN won\'t work with your server. Contact your hosting provider.' , 'woocommerce' ) . ' ' . $response -> get_error_message ();
if ( $response -> get_error_message () ) {
$posting [ 'wp_remote_post' ][ 'note' ] .= ' ' . sprintf ( __ ( 'Error: %s' , 'woocommerce' ), $response -> get_error_message () );
}
2013-07-18 14:22:05 +00:00
$posting [ 'wp_remote_post' ][ 'success' ] = false ;
}
2014-10-21 15:38:03 +00:00
// WP Remote Get Check
$posting [ 'wp_remote_get' ][ 'name' ] = __ ( 'Remote Get' , 'woocommerce' );
$posting [ 'wp_remote_get' ][ 'help' ] = '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'WooCommerce plugins may use this method of communication when checking for plugin updates.' , 'woocommerce' ) . '">[?]</a>' ;
$response = wp_remote_get ( 'http://www.woothemes.com/wc-api/product-key-api?request=ping&network=' . ( is_multisite () ? '1' : '0' ) );
if ( ! is_wp_error ( $response ) && $response [ 'response' ][ 'code' ] >= 200 && $response [ 'response' ][ 'code' ] < 300 ) {
$posting [ 'wp_remote_get' ][ 'success' ] = true ;
} else {
$posting [ 'wp_remote_get' ][ 'note' ] = __ ( 'wp_remote_get() failed. The WooCommerce plugin updater won\'t work with your server. Contact your hosting provider.' , 'woocommerce' ) . ' ' . $response -> get_error_message ();
if ( $response -> get_error_message () ) {
$posting [ 'wp_remote_get' ][ 'note' ] .= ' ' . sprintf ( __ ( 'Error: %s' , 'woocommerce' ), $response -> get_error_message () );
}
$posting [ 'wp_remote_get' ][ 'success' ] = false ;
}
2014-10-18 09:56:58 +00:00
2013-07-18 14:22:05 +00:00
$posting = apply_filters ( 'woocommerce_debug_posting' , $posting );
2015-01-03 17:45:02 +00:00
foreach ( $posting as $post ) {
$mark = ! empty ( $post [ 'success' ] ) ? 'yes' : 'error' ;
2013-07-18 14:22:05 +00:00
?>
< tr >
< td >< ? php echo esc_html ( $post [ 'name' ] ); ?> :</td>
2014-10-18 09:56:58 +00:00
< td >< ? php echo isset ( $post [ 'help' ] ) ? $post [ 'help' ] : '' ; ?> </td>
2013-07-18 14:22:05 +00:00
< td >
< mark class = " <?php echo $mark ; ?> " >
2015-01-03 17:45:02 +00:00
< ? php echo ! empty ( $post [ 'success' ] ) ? '✔' : '✕' ; ?>
< ? php echo ! empty ( $post [ 'note' ] ) ? wp_kses_data ( $post [ 'note' ] ) : '' ; ?>
2013-07-18 14:22:05 +00:00
</ mark >
</ td >
</ tr >
< ? php
}
?>
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-11-11 15:41:32 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " Server Locale " >< ? php _e ( 'Server Locale' , 'woocommerce' ); ?> </th>
2013-11-11 15:41:32 +00:00
</ tr >
</ thead >
< tbody >
< ? php
$locale = localeconv ();
2014-10-18 09:56:58 +00:00
$locale_help = array (
'decimal_point' => __ ( 'The character used for decimal points.' , 'woocommerce' ),
'thousands_sep' => __ ( 'The character used for a thousands separator.' , 'woocommerce' ),
'mon_decimal_point' => __ ( 'The character used for decimal points in monetary values.' , 'woocommerce' ),
'mon_thousands_sep' => __ ( 'The character used for a thousands separator in monetary values.' , 'woocommerce' ),
);
2013-11-11 15:41:32 +00:00
2014-10-18 09:56:58 +00:00
foreach ( $locale as $key => $val ) {
if ( in_array ( $key , array ( 'decimal_point' , 'mon_decimal_point' , 'thousands_sep' , 'mon_thousands_sep' ) ) ) {
2014-10-24 11:49:27 +00:00
echo '<tr><td>' . $key . ':</td><td class="help"><a href="#" class="help_tip" data-tip="' . esc_attr ( $locale_help [ $key ] ) . '">[?]</a></td><td>' . ( $val ? $val : __ ( 'N/A' , 'woocommerce' ) ) . '</td></tr>' ;
2014-10-18 09:56:58 +00:00
}
}
2013-11-11 15:41:32 +00:00
?>
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-07-18 14:22:05 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " Active Plugins (<?php echo count( (array) get_option( 'active_plugins' ) ); ?>) " >< ? php _e ( 'Active Plugins' , 'woocommerce' ); ?> (<?php echo count( (array) get_option( 'active_plugins' ) ); ?>)</th>
2013-07-18 14:22:05 +00:00
</ tr >
</ thead >
< tbody >
2014-10-24 11:49:27 +00:00
< ? php
$active_plugins = ( array ) get_option ( 'active_plugins' , array () );
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
if ( is_multisite () ) {
$active_plugins = array_merge ( $active_plugins , get_site_option ( 'active_sitewide_plugins' , array () ) );
}
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
foreach ( $active_plugins as $plugin ) {
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
$plugin_data = @ get_plugin_data ( WP_PLUGIN_DIR . '/' . $plugin );
$dirname = dirname ( $plugin );
$version_string = '' ;
$network_string = '' ;
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
if ( ! empty ( $plugin_data [ 'Name' ] ) ) {
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
// link the plugin name to the plugin url if available
$plugin_name = esc_html ( $plugin_data [ 'Name' ] );
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
if ( ! empty ( $plugin_data [ 'PluginURI' ] ) ) {
$plugin_name = '<a href="' . esc_url ( $plugin_data [ 'PluginURI' ] ) . '" title="' . __ ( 'Visit plugin homepage' , 'woocommerce' ) . '">' . $plugin_name . '</a>' ;
}
2013-07-31 02:31:19 +00:00
2014-10-24 11:49:27 +00:00
if ( strstr ( $dirname , 'woocommerce' ) ) {
if ( false === ( $version_data = get_transient ( md5 ( $plugin ) . '_version_data' ) ) ) {
$changelog = wp_remote_get ( 'http://dzv365zjfbd8v.cloudfront.net/changelogs/' . $dirname . '/changelog.txt' );
$cl_lines = explode ( " \n " , wp_remote_retrieve_body ( $changelog ) );
if ( ! empty ( $cl_lines ) ) {
foreach ( $cl_lines as $line_num => $cl_line ) {
if ( preg_match ( '/^[0-9]/' , $cl_line ) ) {
$date = str_replace ( '.' , '-' , trim ( substr ( $cl_line , 0 , strpos ( $cl_line , '-' ) ) ) );
$version = preg_replace ( '~[^0-9,.]~' , '' , stristr ( $cl_line , " version " ) );
$update = trim ( str_replace ( " * " , " " , $cl_lines [ $line_num + 1 ] ) );
$version_data = array ( 'date' => $date , 'version' => $version , 'update' => $update , 'changelog' => $changelog );
set_transient ( md5 ( $plugin ) . '_version_data' , $version_data , DAY_IN_SECONDS );
break ;
2013-07-18 14:22:05 +00:00
}
}
}
2014-10-24 11:49:27 +00:00
}
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
if ( ! empty ( $version_data [ 'version' ] ) && version_compare ( $version_data [ 'version' ], $plugin_data [ 'Version' ], '>' ) ) {
$version_string = ' – <strong style="color:red;">' . esc_html ( sprintf ( _x ( '%s is available' , 'Version info' , 'woocommerce' ), $version_data [ 'version' ] ) ) . '</strong>' ;
}
2013-07-18 14:22:05 +00:00
2014-10-24 11:49:27 +00:00
if ( $plugin_data [ 'Network' ] != false ) {
2014-10-24 11:54:51 +00:00
$network_string = ' – <strong style="color:black;">' . __ ( 'Network enabled' , 'woocommerce' ) . '</strong>' ;
2013-07-18 14:22:05 +00:00
}
}
2014-10-24 11:49:27 +00:00
?>
< tr >
< td >< ? php echo $plugin_name ; ?> </td>
< td class = " help " >& nbsp ; </ td >
< td >< ? php echo sprintf ( _x ( 'by %s' , 'by author' , 'woocommerce' ), $plugin_data [ 'Author' ] ) . ' – ' . esc_html ( $plugin_data [ 'Version' ] ) . $version_string . $network_string ; ?> </td>
</ tr >
< ? php
}
}
?>
2013-07-18 14:22:05 +00:00
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-07-18 14:22:05 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " Settings " >< ? php _e ( 'Settings' , 'woocommerce' ); ?> </th>
2013-07-18 14:22:05 +00:00
</ tr >
</ thead >
< tbody >
2014-10-18 09:56:58 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " API Enabled " >< ? php _e ( 'API Enabled' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Does your site have REST API enabled?' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-03 17:45:02 +00:00
< td >< ? php echo 'yes' === get_option ( 'woocommerce_api_enabled' ) ? '<mark class="yes">' . '✔' . '</mark>' : '<mark class="no">' . '–' . '</mark>' ; ?> </td>
2014-10-18 09:56:58 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Taxes Enabled " >< ? php _e ( 'Taxes Enabled' , 'woocommerce' ) ?> </td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Does your site have taxes enabled?' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-03 17:45:02 +00:00
< td >< ? php echo wc_tax_enabled () ? '<mark class="yes">' . '✔' . '</mark>' : '<mark class="no">' . '–' . '</mark>' ; ?> </td>
2014-10-18 09:56:58 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Shipping Enabled " >< ? php _e ( 'Shipping Enabled' , 'woocommerce' ) ?> </td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Does your site have shipping enabled?' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-03 17:45:02 +00:00
< td >< ? php echo 'yes' === get_option ( 'woocommerce_calc_shipping' ) ? '<mark class="yes">' . '✔' . '</mark>' : '<mark class="no">' . '–' . '</mark>' ; ?> </td>
2014-10-18 09:56:58 +00:00
</ tr >
2013-07-18 14:22:05 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Force SSL " >< ? php _e ( 'Force SSL' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Does your site force a SSL Certificate for transactions?' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-03 17:45:02 +00:00
< td >< ? php echo 'yes' === get_option ( 'woocommerce_force_ssl_checkout' ) ? '<mark class="yes">' . '✔' . '</mark>' : '<mark class="no">' . '–' . '</mark>' ; ?> </td>
2014-10-18 09:56:58 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Currency " >< ? php _e ( 'Currency' , 'woocommerce' ) ?> </td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'What currency prices are listed at in the catalog and which currency gateways will take payments in.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php echo get_woocommerce_currency (); ?> (<?php echo get_woocommerce_currency_symbol() ?>)</td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Currency Position " >< ? php _e ( 'Currency Position' , 'woocommerce' ) ?> </td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The position of the currency symbol.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php echo get_option ( 'woocommerce_currency_pos' ); ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Thousand Separator " >< ? php _e ( 'Thousand Separator' , 'woocommerce' ) ?> </td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The thousand separator of displayed prices.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-22 16:05:47 +00:00
< td >< ? php echo wc_price_thousand_separator (); ?> </td>
2014-10-18 09:56:58 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Decimal Separator " >< ? php _e ( 'Decimal Separator' , 'woocommerce' ) ?> </td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The decimal separator of displayed prices.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2015-01-22 16:05:47 +00:00
< td >< ? php echo wc_price_decimal_separator (); ?> </td>
2014-10-18 09:56:58 +00:00
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Number of Decimals " >< ? php _e ( 'Number of Decimals' , 'woocommerce' ) ?> </td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The number of decimal points shown in displayed prices.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-18 09:56:58 +00:00
< td >< ? php echo get_option ( 'woocommerce_price_num_decimals' ); ?> </td>
2013-07-18 14:22:05 +00:00
</ tr >
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-07-18 14:22:05 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " WC Pages " >< ? php _e ( 'WC Pages' , 'woocommerce' ); ?> </th>
2013-07-18 14:22:05 +00:00
</ tr >
</ thead >
< tbody >
< ? php
$check_pages = array (
2014-03-03 14:47:19 +00:00
_x ( 'Shop Base' , 'Page setting' , 'woocommerce' ) => array (
2014-10-18 09:56:58 +00:00
'option' => 'woocommerce_shop_page_id' ,
'shortcode' => '' ,
'help' => __ ( 'The URL of your WooCommerce shop\'s homepage (along with the Page ID).' , 'woocommerce' ),
2013-07-18 14:22:05 +00:00
),
2014-03-03 14:47:19 +00:00
_x ( 'Cart' , 'Page setting' , 'woocommerce' ) => array (
2014-10-18 09:56:58 +00:00
'option' => 'woocommerce_cart_page_id' ,
'shortcode' => '[' . apply_filters ( 'woocommerce_cart_shortcode_tag' , 'woocommerce_cart' ) . ']' ,
'help' => __ ( 'The URL of your WooCommerce shop\'s cart (along with the page ID).' , 'woocommerce' ),
2013-07-18 14:22:05 +00:00
),
2014-03-03 14:47:19 +00:00
_x ( 'Checkout' , 'Page setting' , 'woocommerce' ) => array (
2014-10-18 09:56:58 +00:00
'option' => 'woocommerce_checkout_page_id' ,
'shortcode' => '[' . apply_filters ( 'woocommerce_checkout_shortcode_tag' , 'woocommerce_checkout' ) . ']' ,
'help' => __ ( 'The URL of your WooCommerce shop\'s checkout (along with the page ID).' , 'woocommerce' ),
2013-07-18 14:22:05 +00:00
),
2014-03-03 14:47:19 +00:00
_x ( 'My Account' , 'Page setting' , 'woocommerce' ) => array (
2014-10-18 09:56:58 +00:00
'option' => 'woocommerce_myaccount_page_id' ,
'shortcode' => '[' . apply_filters ( 'woocommerce_my_account_shortcode_tag' , 'woocommerce_my_account' ) . ']' ,
'help' => __ ( 'The URL of your WooCommerce shop\'s “My Account” Page (along with the page ID).' , 'woocommerce' ),
2013-07-18 14:22:05 +00:00
)
);
$alt = 1 ;
foreach ( $check_pages as $page_name => $values ) {
2014-11-28 08:06:15 +00:00
$error = false ;
$page_id = get_option ( $values [ 'option' ] );
2013-07-18 14:22:05 +00:00
2014-11-28 08:06:15 +00:00
if ( $page_id ) {
2015-01-15 11:22:32 +00:00
$page_name = '<a href="' . get_edit_post_link ( $page_id ) . '" title="' . sprintf ( _x ( 'Edit %s page' , 'WC Pages links in the System Status' , 'woocommerce' ), esc_html ( $page_name ) ) . '">' . esc_html ( $page_name ) . '</a>' ;
2014-11-28 08:06:15 +00:00
} else {
$page_name = esc_html ( $page_name );
}
2013-07-18 14:22:05 +00:00
2014-11-28 08:06:15 +00:00
echo '<tr><td>' . $page_name . ':</td>' ;
echo '<td class="help"><a href="#" class="help_tip" data-tip="' . esc_attr ( $values [ 'help' ] ) . '">[?]</a></td><td>' ;
2013-07-18 14:22:05 +00:00
// Page ID check
if ( ! $page_id ) {
echo '<mark class="error">' . __ ( 'Page not set' , 'woocommerce' ) . '</mark>' ;
$error = true ;
} else {
// Shortcode check
if ( $values [ 'shortcode' ] ) {
$page = get_post ( $page_id );
if ( empty ( $page ) ) {
echo '<mark class="error">' . sprintf ( __ ( 'Page does not exist' , 'woocommerce' ) ) . '</mark>' ;
$error = true ;
} else if ( ! strstr ( $page -> post_content , $values [ 'shortcode' ] ) ) {
echo '<mark class="error">' . sprintf ( __ ( 'Page does not contain the shortcode: %s' , 'woocommerce' ), $values [ 'shortcode' ] ) . '</mark>' ;
$error = true ;
}
}
}
if ( ! $error ) echo '<mark class="yes">#' . absint ( $page_id ) . ' - ' . str_replace ( home_url (), '' , get_permalink ( $page_id ) ) . '</mark>' ;
echo '</td></tr>' ;
}
?>
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-07-18 14:22:05 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " Taxonomies " >< ? php _e ( 'Taxonomies' , 'woocommerce' ); ?> <?php echo ' <a href="#" class="help_tip" data-tip="' . esc_attr__( 'A list of taxonomy terms that can be used in regard to order/product statuses.', 'woocommerce' ) . '">[?]</a>'; ?></th>
2013-07-18 14:22:05 +00:00
</ tr >
</ thead >
< tbody >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Product Types " >< ? php _e ( 'Product Types' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >& nbsp ; </ td >
2013-07-18 14:22:05 +00:00
< td >< ? php
$display_terms = array ();
$terms = get_terms ( 'product_type' , array ( 'hide_empty' => 0 ) );
foreach ( $terms as $term )
2014-10-18 09:56:58 +00:00
$display_terms [] = strtolower ( $term -> name ) . ' (' . $term -> slug . ')' ;
2013-07-18 14:22:05 +00:00
echo implode ( ', ' , array_map ( 'esc_html' , $display_terms ) );
?> </td>
</ tr >
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-07-18 14:22:05 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " Theme " >< ? php _e ( 'Theme' , 'woocommerce' ); ?> </th>
2013-07-18 14:22:05 +00:00
</ tr >
</ thead >
2014-06-27 19:37:59 +00:00
< ? php
$active_theme = wp_get_theme ();
if ( $active_theme -> { 'Author URI' } == 'http://www.woothemes.com' ) :
2013-09-13 12:38:36 +00:00
2014-02-19 14:05:32 +00:00
$theme_dir = substr ( strtolower ( str_replace ( ' ' , '' , $active_theme -> Name ) ), 0 , 45 );
2013-09-13 12:38:36 +00:00
2013-09-08 02:26:26 +00:00
if ( false === ( $theme_version_data = get_transient ( $theme_dir . '_version_data' ) ) ) :
2013-09-13 12:38:36 +00:00
2014-06-27 19:37:59 +00:00
$theme_changelog = wp_remote_get ( 'http://dzv365zjfbd8v.cloudfront.net/changelogs/' . $theme_dir . '/changelog.txt' );
2013-09-08 02:26:26 +00:00
$cl_lines = explode ( " \n " , wp_remote_retrieve_body ( $theme_changelog ) );
if ( ! empty ( $cl_lines ) ) :
2013-09-13 12:38:36 +00:00
2013-09-08 02:26:26 +00:00
foreach ( $cl_lines as $line_num => $cl_line ) {
if ( preg_match ( '/^[0-9]/' , $cl_line ) ) :
2014-10-18 09:56:58 +00:00
$theme_date = str_replace ( '.' , '-' , trim ( substr ( $cl_line , 0 , strpos ( $cl_line , '-' ) ) ) );
2013-09-08 02:26:26 +00:00
$theme_version = preg_replace ( '~[^0-9,.]~' , '' , stristr ( $cl_line , " version " ) );
$theme_update = trim ( str_replace ( " * " , " " , $cl_lines [ $line_num + 1 ] ) );
$theme_version_data = array ( 'date' => $theme_date , 'version' => $theme_version , 'update' => $theme_update , 'changelog' => $theme_changelog );
2014-08-27 13:37:03 +00:00
set_transient ( $theme_dir . '_version_data' , $theme_version_data , DAY_IN_SECONDS );
2013-09-08 02:26:26 +00:00
break ;
2013-09-13 12:38:36 +00:00
2013-09-08 02:26:26 +00:00
endif ;
}
2013-09-13 12:38:36 +00:00
2013-09-08 02:26:26 +00:00
endif ;
2013-09-13 12:38:36 +00:00
2013-09-08 02:26:26 +00:00
endif ;
2013-09-13 12:38:36 +00:00
2013-09-08 02:26:26 +00:00
endif ;
?>
2013-07-18 14:22:05 +00:00
< tbody >
2014-10-24 11:49:27 +00:00
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Name " >< ? php _e ( 'Name' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The name of the current active theme.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
< td >< ? php echo $active_theme -> Name ; ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Version " >< ? php _e ( 'Version' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The installed version of the current active theme.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
< td >< ? php
echo $active_theme -> Version ;
2014-10-18 09:56:58 +00:00
2014-10-24 11:49:27 +00:00
if ( ! empty ( $theme_version_data [ 'version' ] ) && version_compare ( $theme_version_data [ 'version' ], $active_theme -> Version , '!=' ) ) {
echo ' – <strong style="color:red;">' . $theme_version_data [ 'version' ] . ' ' . __ ( 'is available' , 'woocommerce' ) . '</strong>' ;
}
?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Author URL " >< ? php _e ( 'Author URL' , 'woocommerce' ); ?> :</td>
2015-01-22 10:36:15 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The theme developers URL.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-24 11:49:27 +00:00
< td >< ? php echo $active_theme -> { 'Author URI' }; ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Child Theme " >< ? php _e ( 'Child Theme' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Displays whether or not the current theme is a child theme.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
< td >< ? php
2015-01-22 10:36:15 +00:00
echo is_child_theme () ? '<mark class="yes">' . '✔' . '</mark>' : '✕ – ' . sprintf ( __ ( 'If you\'re modifying WooCommerce or a parent theme you didn\'t build personally we recommend using a child theme. See: <a href="%s" target="_blank">How to create a child theme</a>' , 'woocommerce' ), 'http://codex.wordpress.org/Child_Themes' );
2014-10-24 11:49:27 +00:00
?> </td>
</ tr >
< ? php
if ( is_child_theme () ) :
$parent_theme = wp_get_theme ( $active_theme -> Template );
?>
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Parent Theme Name " >< ? php _e ( 'Parent Theme Name' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The name of the parent theme.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
< td >< ? php echo $parent_theme -> Name ; ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Parent Theme Version " >< ? php _e ( 'Parent Theme Version' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The installed version of the parent theme.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
< td >< ? php echo $parent_theme -> Version ; ?> </td>
</ tr >
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Parent Theme Author URL " >< ? php _e ( 'Parent Theme Author URL' , 'woocommerce' ); ?> :</td>
2015-01-22 10:36:15 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'The parent theme developers URL.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-24 11:49:27 +00:00
< td >< ? php echo $parent_theme -> { 'Author URI' }; ?> </td>
</ tr >
< ? php endif ?>
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " WooCommerce Support " >< ? php _e ( 'WooCommerce Support' , 'woocommerce' ); ?> :</td>
2015-01-16 12:47:29 +00:00
< td class = " help " >< ? php echo '<a href="#" class="help_tip" data-tip="' . esc_attr__ ( 'Displays whether or not the current active theme declares WooCommerce support.' , 'woocommerce' ) . '">[?]</a>' ; ?> </td>
2014-10-24 11:49:27 +00:00
< td >< ? php
if ( ! current_theme_supports ( 'woocommerce' ) && ! in_array ( $active_theme -> template , wc_get_core_supported_themes () ) ) {
echo '<mark class="error">' . __ ( 'Not Declared' , 'woocommerce' ) . '</mark>' ;
} else {
2015-01-03 17:45:02 +00:00
echo '<mark class="yes">' . '✔' . '</mark>' ;
2014-10-24 11:49:27 +00:00
}
?> </td>
</ tr >
2013-07-18 14:22:05 +00:00
</ tbody >
2014-10-24 11:49:27 +00:00
</ table >
< table class = " wc_status_table widefat " cellspacing = " 0 " id = " status " >
2013-07-18 14:22:05 +00:00
< thead >
< tr >
2015-01-03 17:45:02 +00:00
< th colspan = " 3 " data - export - label = " Templates " >< ? php _e ( 'Templates' , 'woocommerce' ); ?> <?php echo ' <a href="#" class="help_tip" data-tip="' . esc_attr__( 'This section shows any files that are overriding the default WooCommerce template pages.', 'woocommerce' ) . '">[?]</a>'; ?></th>
2013-07-18 14:22:05 +00:00
</ tr >
</ thead >
< tbody >
2014-06-09 13:57:02 +00:00
< ? php
2013-07-18 14:22:05 +00:00
2014-10-18 09:56:58 +00:00
$template_paths = apply_filters ( 'woocommerce_template_overrides_scan_paths' , array ( 'WooCommerce' => WC () -> plugin_path () . '/templates/' ) );
$scanned_files = array ();
$found_files = array ();
$outdated_templates = false ;
2014-02-11 13:33:56 +00:00
2014-06-09 13:57:02 +00:00
foreach ( $template_paths as $plugin_name => $template_path ) {
$scanned_files [ $plugin_name ] = WC_Admin_Status :: scan_template_files ( $template_path );
}
2014-02-11 13:33:56 +00:00
2014-06-09 13:57:02 +00:00
foreach ( $scanned_files as $plugin_name => $files ) {
foreach ( $files as $file ) {
if ( file_exists ( get_stylesheet_directory () . '/' . $file ) ) {
$theme_file = get_stylesheet_directory () . '/' . $file ;
} elseif ( file_exists ( get_stylesheet_directory () . '/woocommerce/' . $file ) ) {
$theme_file = get_stylesheet_directory () . '/woocommerce/' . $file ;
} elseif ( file_exists ( get_template_directory () . '/' . $file ) ) {
$theme_file = get_template_directory () . '/' . $file ;
} elseif ( file_exists ( get_template_directory () . '/woocommerce/' . $file ) ) {
$theme_file = get_template_directory () . '/woocommerce/' . $file ;
} else {
$theme_file = false ;
}
2014-02-11 13:33:56 +00:00
2014-06-09 13:57:02 +00:00
if ( $theme_file ) {
$core_version = WC_Admin_Status :: get_file_version ( WC () -> plugin_path () . '/templates/' . $file );
$theme_version = WC_Admin_Status :: get_file_version ( $theme_file );
2014-02-11 13:33:56 +00:00
2014-06-09 13:57:02 +00:00
if ( $core_version && ( empty ( $theme_version ) || version_compare ( $theme_version , $core_version , '<' ) ) ) {
2014-10-18 09:56:58 +00:00
if ( ! $outdated_templates ) {
$outdated_templates = true ;
}
2014-09-11 14:31:55 +00:00
$found_files [ $plugin_name ][] = sprintf ( __ ( '<code>%s</code> version <strong style="color:red">%s</strong> is out of date. The core version is %s' , 'woocommerce' ), str_replace ( WP_CONTENT_DIR . '/themes/' , '' , $theme_file ), $theme_version ? $theme_version : '-' , $core_version );
2014-06-09 13:57:02 +00:00
} else {
2014-09-11 14:31:55 +00:00
$found_files [ $plugin_name ][] = sprintf ( '<code>%s</code>' , str_replace ( WP_CONTENT_DIR . '/themes/' , '' , $theme_file ) );
2013-09-26 09:02:38 +00:00
}
2013-07-18 14:22:05 +00:00
}
}
2014-06-09 13:57:02 +00:00
}
2013-07-18 14:22:05 +00:00
2014-06-09 13:57:02 +00:00
if ( $found_files ) {
foreach ( $found_files as $plugin_name => $found_plugin_files ) {
?>
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Overrides " >< ? php _e ( 'Overrides' , 'woocommerce' ); ?> (<?php echo $plugin_name; ?>):</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >& nbsp ; </ td >
2014-02-11 13:33:56 +00:00
< td >< ? php echo implode ( ', <br/>' , $found_plugin_files ); ?> </td>
2014-06-09 13:57:02 +00:00
</ tr >
2014-02-11 13:33:56 +00:00
< ? php
2013-07-18 14:22:05 +00:00
}
2014-06-09 13:57:02 +00:00
} else {
?>
< tr >
2015-01-03 17:45:02 +00:00
< td data - export - label = " Overrides " >< ? php _e ( 'Overrides' , 'woocommerce' ); ?> :</td>
2014-10-24 11:49:27 +00:00
< td class = " help " >& nbsp ; </ td >
2015-01-03 17:45:02 +00:00
< td >& ndash ; </ td >
2014-06-09 13:57:02 +00:00
</ tr >
< ? php
}
2014-10-18 09:56:58 +00:00
if ( true === $outdated_templates ) {
?>
< tr >
< td >& nbsp ; </ td >
2014-10-24 11:49:27 +00:00
< td class = " help " >& nbsp ; </ td >
2014-10-18 09:56:58 +00:00
< td >< a href = " http://speakinginbytes.com/2014/02/woocommerce-2-1-outdated-templates/ " target = " _blank " >< ? php _e ( 'Learn how to update outdated templates' , 'woocommerce' ) ?> </a></td>
</ tr >
< ? php
}
2014-06-09 13:57:02 +00:00
?>
2013-07-18 14:22:05 +00:00
</ tbody >
</ table >
< script type = " text/javascript " >
2014-08-26 17:13:39 +00:00
/**
* wc_strPad
*
* @ param { var } i string default
* @ param { var } l how many repeat s
* @ param { var } s string to repeat
* @ param { var } w where s should indent
* @ return { var } string modified
*/
jQuery . wc_strPad = function ( i , l , s , w ) {
2013-07-18 14:22:05 +00:00
var o = i . toString ();
2014-08-26 17:13:39 +00:00
if ( ! s ) { s = '0' ; }
while ( o . length < l ) {
2013-07-18 14:22:05 +00:00
// empty
2014-08-26 17:13:39 +00:00
if ( w == 'undefined' ){
2013-07-18 14:22:05 +00:00
o = s + o ;
2014-08-26 17:13:39 +00:00
} else {
2013-07-18 14:22:05 +00:00
o = o + s ;
}
}
return o ;
};
2014-10-18 09:56:58 +00:00
jQuery ( 'a.help_tip' ) . click ( function () { return false ; });
2014-08-26 17:13:39 +00:00
jQuery ( 'a.debug-report' ) . click ( function (){
var report = " " ;
jQuery ( '#status thead, #status tbody' ) . each ( function (){
2013-07-18 14:22:05 +00:00
2013-09-13 12:38:36 +00:00
if ( jQuery ( this ) . is ( 'thead' ) ) {
2013-07-18 14:22:05 +00:00
2015-01-03 17:45:02 +00:00
var label = jQuery ( this ) . find ( 'th:eq(0)' ) . data ( 'export-label' ) || jQuery ( this ) . text ();
report = report + " \n ### " + jQuery . trim ( label ) + " ### \n \n " ;
2013-07-18 14:22:05 +00:00
} else {
2014-08-26 17:13:39 +00:00
jQuery ( 'tr' , jQuery ( this ) ) . each ( function (){
2013-07-18 14:22:05 +00:00
2015-01-03 17:45:02 +00:00
var label = jQuery ( this ) . find ( 'td:eq(0)' ) . data ( 'export-label' ) || jQuery ( this ) . find ( 'td:eq(0)' ) . text ();
var the_name = jQuery . wc_strPad ( jQuery . trim ( label ), 25 , ' ' );
2014-10-18 09:56:58 +00:00
var the_value = jQuery . trim ( jQuery ( this ) . find ( 'td:eq(2)' ) . text () );
2013-09-13 12:38:36 +00:00
var value_array = the_value . split ( ', ' );
2013-07-18 14:22:05 +00:00
2014-08-26 17:13:39 +00:00
if ( value_array . length > 1 ) {
2013-07-18 14:22:05 +00:00
2014-08-26 17:13:39 +00:00
// If value have a list of plugins ','
// Split to add new line
2013-09-13 12:38:36 +00:00
var output = '' ;
var temp_line = '' ;
2014-08-26 17:13:39 +00:00
jQuery . each ( value_array , function ( key , line ){
var tab = ( key == 0 ) ? 0 : 25 ;
2013-07-18 14:22:05 +00:00
temp_line = temp_line + jQuery . wc_strPad ( '' , tab , ' ' , 'f' ) + line + '\n' ;
2014-08-26 17:28:05 +00:00
});
2013-07-18 14:22:05 +00:00
2013-09-13 12:38:36 +00:00
the_value = temp_line ;
2013-07-18 14:22:05 +00:00
}
2014-10-24 11:49:27 +00:00
report = report + '' + the_name + ' ' + the_value + " \n " ;
2014-08-26 17:28:05 +00:00
});
2013-07-18 14:22:05 +00:00
}
2014-08-26 17:28:05 +00:00
});
2013-07-18 14:22:05 +00:00
2013-09-13 12:38:36 +00:00
try {
2014-08-26 17:13:39 +00:00
jQuery ( " #debug-report " ) . slideDown ();
jQuery ( " #debug-report textarea " ) . val ( report ) . focus () . select ();
jQuery ( this ) . fadeOut ();
2013-09-13 12:38:36 +00:00
return false ;
2014-08-26 17:13:39 +00:00
} catch ( e ){
console . log ( e );
}
2013-07-18 14:22:05 +00:00
2013-09-13 12:38:36 +00:00
return false ;
2013-07-18 14:22:05 +00:00
});
2014-07-29 15:06:58 +00:00
jQuery ( document ) . ready ( function ( $ ) {
$ ( '#copy-for-support' ) . tipTip ({
'attribute' : 'data-tip' ,
'activation' : 'click' ,
'fadeIn' : 50 ,
'fadeOut' : 50 ,
'delay' : 0
});
2014-08-26 17:13:39 +00:00
$ ( 'body' ) . on ( 'copy' , '#copy-for-support' , function ( e ) {
2014-07-29 15:06:58 +00:00
e . clipboardData . clearData ();
e . clipboardData . setData ( 'text/plain' , $ ( '#debug-report textarea' ) . val () );
e . preventDefault ();
});
});
2013-09-08 02:26:26 +00:00
</ script >