2013-03-01 16:03:10 +00:00
< ? php
/**
* Welcome Page Class
*
* Shows a feature overview for the new version ( major ) and credits .
*
* Adapted from code in EDD ( Copyright ( c ) 2012 , Pippin Williamson ) and WP .
*
* @ author WooThemes
* @ category Admin
* @ package WooCommerce / Admin
2013-11-19 16:18:44 +00:00
* @ version 2.1 . 0
2013-03-01 16:03:10 +00:00
*/
if ( ! defined ( 'ABSPATH' ) ) exit ; // Exit if accessed directly
/**
2013-07-24 16:01:36 +00:00
* WC_Admin_Welcome class .
2013-03-01 16:03:10 +00:00
*/
2013-07-24 16:01:36 +00:00
class WC_Admin_Welcome {
2013-03-01 16:03:10 +00:00
2013-03-05 18:50:44 +00:00
private $plugin ;
2013-03-01 16:03:10 +00:00
/**
* __construct function .
*
* @ access public
* @ return void
*/
public function __construct () {
2013-03-05 18:50:44 +00:00
$this -> plugin = 'woocommerce/woocommerce.php' ;
2013-03-01 16:03:10 +00:00
add_action ( 'admin_menu' , array ( $this , 'admin_menus' ) );
add_action ( 'admin_head' , array ( $this , 'admin_head' ) );
add_action ( 'admin_init' , array ( $this , 'welcome' ) );
}
/**
* Add admin menus / screens
*
* @ access public
* @ return void
*/
public function admin_menus () {
2014-04-29 13:03:10 +00:00
if ( empty ( $_GET [ 'page' ] ) ) {
return ;
}
2013-03-18 12:49:13 +00:00
2014-04-29 13:03:10 +00:00
$welcome_page_name = __ ( 'About WooCommerce' , 'woocommerce' );
2013-03-18 12:52:00 +00:00
$welcome_page_title = __ ( 'Welcome to WooCommerce' , 'woocommerce' );
2013-03-18 12:49:13 +00:00
2014-04-29 13:03:10 +00:00
switch ( $_GET [ 'page' ] ) {
case 'wc-about' :
$page = add_dashboard_page ( $welcome_page_title , $welcome_page_name , 'manage_options' , 'wc-about' , array ( $this , 'about_screen' ) );
add_action ( 'admin_print_styles-' . $page , array ( $this , 'admin_css' ) );
break ;
case 'wc-credits' :
$page = add_dashboard_page ( $welcome_page_title , $welcome_page_name , 'manage_options' , 'wc-credits' , array ( $this , 'credits_screen' ) );
add_action ( 'admin_print_styles-' . $page , array ( $this , 'admin_css' ) );
break ;
case 'wc-translators' :
$page = add_dashboard_page ( $welcome_page_title , $welcome_page_name , 'manage_options' , 'wc-translators' , array ( $this , 'translators_screen' ) );
add_action ( 'admin_print_styles-' . $page , array ( $this , 'admin_css' ) );
break ;
}
2013-03-01 16:03:10 +00:00
}
/**
* admin_css function .
*
* @ access public
* @ return void
*/
public function admin_css () {
2014-02-12 09:23:06 +00:00
wp_enqueue_style ( 'woocommerce-activation' , plugins_url ( '/assets/css/activation.css' , WC_PLUGIN_FILE ), array (), WC_VERSION );
2013-03-01 16:03:10 +00:00
}
/**
* Add styles just for this page , and remove dashboard page links .
*
* @ access public
* @ return void
*/
public function admin_head () {
remove_submenu_page ( 'index.php' , 'wc-about' );
remove_submenu_page ( 'index.php' , 'wc-credits' );
2014-02-07 13:06:20 +00:00
remove_submenu_page ( 'index.php' , 'wc-translators' );
2013-03-01 16:03:10 +00:00
?>
< style type = " text/css " >
/*<![CDATA[*/
2013-11-19 16:18:44 +00:00
. wc - badge : before {
font - family : WooCommerce ! important ;
content : " \ e03d " ;
color : #fff;
- webkit - font - smoothing : antialiased ;
- moz - osx - font - smoothing : grayscale ;
font - size : 80 px ;
font - weight : normal ;
width : 165 px ;
height : 165 px ;
line - height : 165 px ;
text - align : center ;
position : absolute ;
top : 0 ;
2014-08-27 20:26:45 +00:00
< ? php echo is_rtl () ? 'right' : 'left' ; ?> : 0;
2013-11-19 16:18:44 +00:00
margin : 0 ;
vertical - align : middle ;
}
2013-03-01 16:03:10 +00:00
. wc - badge {
2014-08-28 00:55:32 +00:00
position : relative ;
2013-11-19 16:18:44 +00:00
background : #9c5d90;
text - rendering : optimizeLegibility ;
2013-03-01 16:03:10 +00:00
padding - top : 150 px ;
height : 52 px ;
2013-11-19 16:18:44 +00:00
width : 165 px ;
font - weight : 600 ;
2013-03-01 16:03:10 +00:00
font - size : 14 px ;
text - align : center ;
2013-11-19 16:18:44 +00:00
color : #ddc8d9;
margin : 5 px 0 0 0 ;
- webkit - box - shadow : 0 1 px 3 px rgba ( 0 , 0 , 0 , . 2 );
box - shadow : 0 1 px 3 px rgba ( 0 , 0 , 0 , . 2 );
2013-03-01 16:03:10 +00:00
}
. about - wrap . wc - badge {
position : absolute ;
top : 0 ;
2014-08-27 20:26:45 +00:00
< ? php echo is_rtl () ? 'left' : 'right' ; ?> : 0;
2013-03-01 16:03:10 +00:00
}
2013-11-19 16:18:44 +00:00
. about - wrap . wc - feature {
overflow : visible ! important ;
* zoom : 1 ;
}
2014-07-31 08:48:17 +00:00
. about - wrap h3 + . wc - feature {
margin - top : 0 ;
}
2013-11-19 16:18:44 +00:00
. about - wrap . wc - feature : before ,
. about - wrap . wc - feature : after {
content : " " ;
display : table ;
}
. about - wrap . wc - feature : after {
clear : both ;
}
. about - wrap . feature - rest div {
width : 50 % ! important ;
2014-08-28 08:55:36 +00:00
padding -< ? php echo is_rtl () ? 'left' : 'right' ; ?> : 100px;
2013-11-19 16:18:44 +00:00
- moz - box - sizing : border - box ;
box - sizing : border - box ;
margin : 0 ! important ;
}
. about - wrap . feature - rest div . last - feature {
2014-08-28 08:55:36 +00:00
padding -< ? php echo is_rtl () ? 'right' : 'left' ; ?> : 100px;
padding -< ? php echo is_rtl () ? 'left' : 'right' ; ?> : 0;
2013-11-19 16:18:44 +00:00
}
. about - wrap div . icon {
width : 0 ! important ;
padding : 0 ;
margin : 0 ;
}
2014-05-15 20:42:04 +00:00
. about - wrap . feature - rest div . icon : before {
2013-11-19 16:18:44 +00:00
font - family : WooCommerce ! important ;
font - weight : normal ;
width : 100 % ;
font - size : 170 px ;
line - height : 125 px ;
color : #9c5d90;
display : inline - block ;
position : relative ;
text - align : center ;
speak : none ;
2014-08-28 08:55:36 +00:00
margin : < ? php echo is_rtl () ? '0 -100px 0 0' : '0 0 0 -100px' ; ?> ;
2013-11-19 16:18:44 +00:00
content : " \ e01d " ;
- webkit - font - smoothing : antialiased ;
- moz - osx - font - smoothing : grayscale ;
}
. about - integrations {
background : #fff;
margin : 20 px 0 ;
padding : 1 px 20 px 10 px ;
}
2014-09-10 11:18:43 +00:00
. changelog h4 {
line - height : 1.4 ;
}
. wc - conf {
2014-09-10 13:56:29 +00:00
background - color : #00204A;
2014-09-10 11:18:43 +00:00
background - image : url ( http :// woothemes . wpengine . netdna - cdn . com / wp - content / uploads / 2014 / 09 / wooconf . jpg );
background - size : cover ;
padding : 11 px 30 px 20 px ;
color : #fff;
border - radius : 4 px ;
- webkit - font - smoothing : antialiased ;
- moz - osx - font - smoothing : grayscale ;
}
. wc - conf h3 {
color : #fff;
}
. wc - conf div {
width : 50 % ;
}
2013-03-01 16:03:10 +00:00
/*]]>*/
</ style >
< ? php
}
/**
* Into text / links shown on all about pages .
*
* @ access private
* @ return void
*/
private function intro () {
2013-03-06 13:43:53 +00:00
// Flush after upgrades
if ( ! empty ( $_GET [ 'wc-updated' ] ) || ! empty ( $_GET [ 'wc-installed' ] ) )
flush_rewrite_rules ();
2013-03-01 16:03:10 +00:00
// Drop minor version if 0
2013-11-25 14:01:32 +00:00
$major_version = substr ( WC () -> version , 0 , 3 );
2013-03-01 16:03:10 +00:00
?>
< h1 >< ? php printf ( __ ( 'Welcome to WooCommerce %s' , 'woocommerce' ), $major_version ); ?> </h1>
< div class = " about-text woocommerce-about-text " >
< ? php
if ( ! empty ( $_GET [ 'wc-installed' ] ) )
$message = __ ( 'Thanks, all done!' , 'woocommerce' );
elseif ( ! empty ( $_GET [ 'wc-updated' ] ) )
$message = __ ( 'Thank you for updating to the latest version!' , 'woocommerce' );
else
$message = __ ( 'Thanks for installing!' , 'woocommerce' );
2014-09-10 11:18:43 +00:00
printf ( __ ( '%s WooCommerce %s is more powerful, stable and secure than ever before. We hope you enjoy using it.' , 'woocommerce' ), $message , $major_version );
2013-03-01 16:03:10 +00:00
?>
</ div >
2013-11-25 14:01:32 +00:00
< div class = " wc-badge " >< ? php printf ( __ ( 'Version %s' , 'woocommerce' ), WC () -> version ); ?> </div>
2013-03-01 16:03:10 +00:00
< p class = " woocommerce-actions " >
2013-10-22 16:26:18 +00:00
< a href = " <?php echo admin_url('admin.php?page=wc-settings'); ?> " class = " button button-primary " >< ? php _e ( 'Settings' , 'woocommerce' ); ?> </a>
2014-08-27 20:49:52 +00:00
< a href = " <?php echo esc_url( apply_filters( 'woocommerce_docs_url', 'http://docs.woothemes.com/documentation/plugins/woocommerce/', 'woocommerce' ) ); ?> " class = " docs button button-primary " >< ? php _e ( 'Docs' , 'woocommerce' ); ?> </a>
2013-03-01 16:03:10 +00:00
< a href = " https://twitter.com/share " class = " twitter-share-button " data - url = " http://www.woothemes.com/woocommerce/ " data - text = " A open-source (free) #ecommerce plugin for #WordPress that helps you sell anything. Beautifully. " data - via = " WooThemes " data - size = " large " data - hashtags = " WooCommerce " > Tweet </ a >
2014-08-27 20:49:52 +00:00
< script >! function ( d , s , id ){ var js , fjs = d . getElementsByTagName ( s )[ 0 ]; if ( ! d . getElementById ( id )){ js = d . createElement ( s ); js . id = id ; js . src = " //platform.twitter.com/widgets.js " ; fjs . parentNode . insertBefore ( js , fjs );}}( document , " script " , " twitter-wjs " ); </ script >
2013-03-01 16:03:10 +00:00
</ p >
< h2 class = " nav-tab-wrapper " >
< a class = " nav-tab <?php if ( $_GET['page'] == 'wc-about' ) echo 'nav-tab-active'; ?> " href = " <?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wc-about' ), 'index.php' ) ) ); ?> " >
< ? php _e ( " What's New " , 'woocommerce' ); ?>
</ a >< a class = " nav-tab <?php if ( $_GET['page'] == 'wc-credits' ) echo 'nav-tab-active'; ?> " href = " <?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wc-credits' ), 'index.php' ) ) ); ?> " >
< ? php _e ( 'Credits' , 'woocommerce' ); ?>
2014-02-07 13:06:20 +00:00
</ a >< a class = " nav-tab <?php if ( $_GET['page'] == 'wc-translators' ) echo 'nav-tab-active'; ?> " href = " <?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wc-translators' ), 'index.php' ) ) ); ?> " >
< ? php _e ( 'Translators' , 'woocommerce' ); ?>
2013-03-01 16:03:10 +00:00
</ a >
</ h2 >
< ? php
}
/**
* Output the about screen .
*/
public function about_screen () {
?>
< div class = " wrap about-wrap " >
< ? php $this -> intro (); ?>
<!--< div class = " changelog point-releases " ></ div >-->
< div class = " changelog " >
2013-11-19 16:18:44 +00:00
< div class = " wc-feature feature-rest feature-section col three-col " >
< div >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Perform partial refunds on orders' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'Store owners can now do partial refunds on orders; define the refund amount, qty, and optionally restore inventory. If the gateway supports it, the payment can be automatically refunded too!' , 'woocommerce' ); ?> </p>
2013-11-19 16:18:44 +00:00
</ div >
< div class = " icon " ></ div >
< div class = " last-feature " >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Updated order totals UI' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'To support the partial refund functionality, the order items and totals panels have been combined. As a result we have a simpler, more user friendly order page.' , 'woocommerce' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
</ div >
2013-11-19 16:18:44 +00:00
</ div >
< div class = " changelog about-integrations " >
2014-07-31 08:48:17 +00:00
< h3 >< ? php _e ( 'WooCommerce REST API version 2' , 'woocommerce' ); ?> </h3>
2013-11-19 16:18:44 +00:00
< div class = " wc-feature feature-section col three-col " >
2013-03-01 16:03:10 +00:00
< div >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Introducing PUT/POST/DELETE methods' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'Update, delete and create orders, customers, products and coupons via the API.' , 'woocommerce' ); ?> </p>
2013-11-19 16:18:44 +00:00
</ div >
< div >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Other enhancements' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'Resources can now be ordered by any field you define for greater control over returned results. v2 also introduces an endpoint for getting product categories from your store.' , 'woocommerce' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
< div class = " last-feature " >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Webhooks' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'Trigger webhooks during events such as when an order is created. Opens up all kinds of external integration opportunities.' , 'woocommerce' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
</ div >
</ div >
< div class = " changelog " >
< div class = " feature-section col three-col " >
< div >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Language pack downloader' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'Due to the size of PO and MO files, we have removed them from core and included our "Language Pack Downloader". International users can download and update their translation files easily from the dashboard.' , 'woocommerce' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
< div >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Variation stock management' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'You can now set stock management options (such as backorder support) at variation level giving much greater control over stock.' , 'woocommerce' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
< div class = " last-feature " >
2014-07-31 08:48:17 +00:00
< h4 >< ? php _e ( 'Improved Payment Gateways' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'The Payment Gateway API has been enhanced to support refunds and storing transaction IDs.' , 'woocommerce' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
</ div >
2014-08-27 20:26:45 +00:00
</ div >
2014-09-10 13:48:13 +00:00
< ? php if ( strtotime ( '2014/11/04' ) > current_time ( 'timestamp' ) ) { ?>
2014-09-10 11:18:43 +00:00
< div class = " changelog wc-conf " >
< div >
2014-09-10 13:49:04 +00:00
< h3 >< ? php _e ( 'Join us at the inaugural WooCommerce Conference in San Francisco' , 'woocommerce' ); ?> </h3>
2014-09-10 11:18:43 +00:00
< p >< ? php echo sprintf ( __ ( 'On the %s3rd and 4th%s of November 2014 WooCommerce creators WooThemes are hosting an event dedicated to store owners & WordPress developers wanting to learn the art of eCommerce using WooCommerce.' , 'woocommerce' ), '<strong>' , '</strong>' ); ?> </p>
< p class = " woocommerce-actions " >< a href = " http://conf.woocommerce.com/ " class = " button button-primary " >< ? php _e ( 'Find out more & buy tickets' , 'woocommerce' ); ?> </a></p>
</ div >
</ div >
2014-09-10 13:48:13 +00:00
< ? php } ?>
2014-08-27 22:54:09 +00:00
2013-03-01 16:03:10 +00:00
< div class = " return-to-dashboard " >
2013-10-22 16:26:18 +00:00
< a href = " <?php echo esc_url( admin_url( add_query_arg( array( 'page' => 'wc-settings' ), 'admin.php' ) ) ); ?> " >< ? php _e ( 'Go to WooCommerce Settings' , 'woocommerce' ); ?> </a>
2013-03-01 16:03:10 +00:00
</ div >
</ div >
< ? php
}
/**
* Output the credits .
*/
public function credits_screen () {
?>
< div class = " wrap about-wrap " >
< ? php $this -> intro (); ?>
2014-08-27 20:56:32 +00:00
< p class = " about-description " >< ? php printf ( __ ( 'WooCommerce is developed and maintained by a worldwide team of passionate individuals and backed by an awesome developer community. Want to see your name? <a href="%s">Contribute to WooCommerce</a>.' , 'woocommerce' ), 'https://github.com/woothemes/woocommerce/blob/master/CONTRIBUTING.md' ); ?> </p>
2013-03-01 16:03:10 +00:00
< ? php echo $this -> contributors (); ?>
2014-02-07 13:06:20 +00:00
</ div >
< ? php
}
/**
* Output the translators screen
*/
public function translators_screen () {
?>
< div class = " wrap about-wrap " >
< ? php $this -> intro (); ?>
2014-08-27 20:56:32 +00:00
< p class = " about-description " >< ? php printf ( __ ( 'WooCommerce has been kindly translated into several other languages thanks to our translation team. Want to see your name? <a href="%s">Translate WooCommerce</a>.' , 'woocommerce' ), 'https://www.transifex.com/projects/p/woocommerce/' ); ?> </p>
2013-03-01 16:03:10 +00:00
2014-07-31 08:48:17 +00:00
< ? php
// Have to use this to get the list until the API is open...
/*
$contributor_json = json_decode ( 'string from https://www.transifex.com/api/2/project/woocommerce/languages/' , true );
$contributors = array ();
foreach ( $contributor_json as $group ) {
$contributors = array_merge ( $contributors , $group [ 'coordinators' ], $group [ 'reviewers' ], $group [ 'translators' ] );
}
$contributors = array_filter ( array_unique ( $contributors ) );
natsort ( $contributors );
foreach ( $contributors as $contributor ) {
echo htmlspecialchars ( '<a href="https://www.transifex.com/accounts/profile/' . $contributor . '">' . $contributor . '</a>, ' );
}
*/
?>
< p class = " wp-credits-list " >
< a href = " https://www.transifex.com/accounts/profile/ABSOLUTE_Web " > ABSOLUTE_Web </ a > , < a href = " https://www.transifex.com/accounts/profile/AIRoman " > AIRoman </ a > , < a href = " https://www.transifex.com/accounts/profile/Adam_Bajer " > Adam_Bajer </ a > , < a href = " https://www.transifex.com/accounts/profile/Aerendir " > Aerendir </ a > , < a href = " https://www.transifex.com/accounts/profile/Aliom " > Aliom </ a > , < a href = " https://www.transifex.com/accounts/profile/Almaz " > Almaz </ a > , < a href = " https://www.transifex.com/accounts/profile/Andriy.Gusak " > Andriy . Gusak </ a > , < a href = " https://www.transifex.com/accounts/profile/AngeloLazzari " > AngeloLazzari </ a > , < a href = " https://www.transifex.com/accounts/profile/Apelsinova " > Apelsinova </ a > , < a href = " https://www.transifex.com/accounts/profile/ArtGoddess " > ArtGoddess </ a > , < a href = " https://www.transifex.com/accounts/profile/Ashleyking " > Ashleyking </ a > , < a href = " https://www.transifex.com/accounts/profile/AslanDoma " > AslanDoma </ a > , < a href = " https://www.transifex.com/accounts/profile/Axium " > Axium </ a > , < a href = " https://www.transifex.com/accounts/profile/Bhuvanendran " > Bhuvanendran </ a > , < a href = " https://www.transifex.com/accounts/profile/Bitly " > Bitly </ a > , < a href = " https://www.transifex.com/accounts/profile/Bogusław " > Bogusław </ a > , < a href = " https://www.transifex.com/accounts/profile/Chaos " > Chaos </ a > , < a href = " https://www.transifex.com/accounts/profile/Chea " > Chea </ a > , < a href = " https://www.transifex.com/accounts/profile/Clausen " > Clausen </ a > , < a href = " https://www.transifex.com/accounts/profile/Closemarketing " > Closemarketing </ a > , < a href = " https://www.transifex.com/accounts/profile/CoachBirgit " > CoachBirgit </ a > , < a href = " https://www.transifex.com/accounts/profile/Compute " > Compute </ a > , < a href = " https://www.transifex.com/accounts/profile/DAJOHH " > DAJOHH </ a > , < a href = " https://www.transifex.com/accounts/profile/DJIO " > DJIO </ a > , < a href = " https://www.transifex.com/accounts/profile/Didierjr " > Didierjr </ a > , < a href = " https://www.transifex.com/accounts/profile/Dimis13 " > Dimis13 </ a > , < a href = " https://www.transifex.com/accounts/profile/Dmitrijb3 " > Dmitrijb3 </ a > , < a href = " https://www.transifex.com/accounts/profile/EmilEriksen " > EmilEriksen </ a > , < a href = " https://www.transifex.com/accounts/profile/Fdu4 " > Fdu4 </ a > , < a href = " https://www.transifex.com/accounts/profile/Flobin " > Flobin </ a > , < a href = " https://www.transifex.com/accounts/profile/FrancoBaccarini " > FrancoBaccarini </ a > , < a href = " https://www.transifex.com/accounts/profile/Fredev " > Fredev </ a > , < a href = " https://www.transifex.com/accounts/profile/GabrielGil " > GabrielGil </ a > , < a href = " https://www.transifex.com/accounts/profile/GeertDD " > GeertDD </ a > , < a href = " https://www.transifex.com/accounts/profile/Gonzalez74 " > Gonzalez74 </ a > , < a href = " https://www.transifex.com/accounts/profile/Graya " > Graya </ a > , < a href = " https://www.transifex.com/accounts/profile/Griga_M " > Griga_M </ a > , < a href = " https://www.transifex.com/accounts/profile/Grześ " > Grześ </ a > , < a href = " https://www.transifex.com/accounts/profile/Gustavogcps " > Gustavogcps </ a > , < a href = " https://www.transifex.com/accounts/profile/HelgaRakel " > HelgaRakel </ a > , < a href = " https://www.transifex.com/accounts/profile/Ian_Razwadowski " > Ian_Razwadowski </ a > , < a href = " https://www.transifex.com/accounts/profile/JKKim " > JKKim </ a > , < a href = " https://www.transifex.com/accounts/profile/JamesIng " > JamesIng </ a > , < a href = " https://www.transifex.com/accounts/profile/Janjaapvandijk " > Janjaapvandijk </ a > , < a href = " https://www.transifex.com/accounts/profile/JoakimAndersen " > JoakimAndersen </ a > , < a href = " https://www.transifex.com/accounts/profile/Joeri " > Joeri </ a > , < a href = " https://www.transifex.com/accounts/profile/JohnRevel " > JohnRevel </ a > , < a href = " https://www.transifex.com/accounts/profile/KennethJ " > KennethJ </ a > , < a href = " https://www.transifex.com/accounts/profile/Kiba_No_Ou " > Kiba_No_Ou </ a > , < a href = " https://www.transifex.com/accounts/profile/Kind " > Kind </ a > , < a href = " https://www.transifex.com/accounts/profile/Komarovski " > Komarovski </ a > , < a href = " https://www.transifex.com/accounts/profile/Lazybadger " > Lazybadger </ a > , < a href = " https://www.transifex.com/accounts/profile/Leones " > Leones </ a > , < a href = " ht
</ p >
2013-03-01 16:03:10 +00:00
</ div >
< ? php
}
/**
* Render Contributors List
*
* @ access public
* @ return string $contributor_list HTML formatted list of contributors .
*/
public function contributors () {
$contributors = $this -> get_contributors ();
2014-07-31 08:48:17 +00:00
if ( empty ( $contributors ) ) {
2013-03-01 16:03:10 +00:00
return '' ;
2014-07-31 08:48:17 +00:00
}
2013-03-01 16:03:10 +00:00
$contributor_list = '<ul class="wp-people-group">' ;
foreach ( $contributors as $contributor ) {
$contributor_list .= '<li class="wp-person">' ;
$contributor_list .= sprintf ( '<a href="%s" title="%s">' ,
esc_url ( 'https://github.com/' . $contributor -> login ),
esc_html ( sprintf ( __ ( 'View %s' , 'woocommerce' ), $contributor -> login ) )
);
$contributor_list .= sprintf ( '<img src="%s" width="64" height="64" class="gravatar" alt="%s" />' , esc_url ( $contributor -> avatar_url ), esc_html ( $contributor -> login ) );
$contributor_list .= '</a>' ;
$contributor_list .= sprintf ( '<a class="web" href="%s">%s</a>' , esc_url ( 'https://github.com/' . $contributor -> login ), esc_html ( $contributor -> login ) );
$contributor_list .= '</a>' ;
$contributor_list .= '</li>' ;
}
$contributor_list .= '</ul>' ;
return $contributor_list ;
}
/**
2013-11-27 09:03:47 +00:00
* Retrieve list of contributors from GitHub .
2013-03-01 16:03:10 +00:00
*
* @ access public
2013-11-27 09:03:47 +00:00
* @ return mixed
2013-03-01 16:03:10 +00:00
*/
public function get_contributors () {
$contributors = get_transient ( 'woocommerce_contributors' );
2014-07-31 08:48:17 +00:00
if ( false !== $contributors ) {
2013-03-01 16:03:10 +00:00
return $contributors ;
2014-07-31 08:48:17 +00:00
}
2013-03-01 16:03:10 +00:00
$response = wp_remote_get ( 'https://api.github.com/repos/woothemes/woocommerce/contributors' , array ( 'sslverify' => false ) );
2014-07-31 08:48:17 +00:00
if ( is_wp_error ( $response ) || 200 != wp_remote_retrieve_response_code ( $response ) ) {
2013-03-01 16:03:10 +00:00
return array ();
2014-07-31 08:48:17 +00:00
}
2013-03-01 16:03:10 +00:00
$contributors = json_decode ( wp_remote_retrieve_body ( $response ) );
2014-07-31 08:48:17 +00:00
if ( ! is_array ( $contributors ) ) {
2013-03-01 16:03:10 +00:00
return array ();
2014-07-31 08:48:17 +00:00
}
2013-03-01 16:03:10 +00:00
2014-08-25 05:31:39 +00:00
set_transient ( 'woocommerce_contributors' , $contributors , HOUR_IN_SECONDS );
2013-03-01 16:03:10 +00:00
return $contributors ;
}
/**
* Sends user to the welcome page on first activation
*/
public function welcome () {
2013-03-05 18:50:44 +00:00
// Bail if no activation redirect transient is set
2014-07-31 08:48:17 +00:00
if ( ! get_transient ( '_wc_activation_redirect' ) ) {
2013-03-01 16:03:10 +00:00
return ;
2014-07-31 08:48:17 +00:00
}
2013-03-01 16:03:10 +00:00
// Delete the redirect transient
delete_transient ( '_wc_activation_redirect' );
2013-03-05 18:50:44 +00:00
// Bail if we are waiting to install or update via the interface update/install links
2014-07-31 08:48:17 +00:00
if ( get_option ( '_wc_needs_update' ) == 1 || get_option ( '_wc_needs_pages' ) == 1 ) {
2013-03-01 16:03:10 +00:00
return ;
2014-07-31 08:48:17 +00:00
}
2013-03-01 16:03:10 +00:00
2013-03-05 18:50:44 +00:00
// Bail if activating from network, or bulk, or within an iFrame
2014-07-31 08:48:17 +00:00
if ( is_network_admin () || isset ( $_GET [ 'activate-multi' ] ) || defined ( 'IFRAME_REQUEST' ) ) {
2013-03-01 16:03:10 +00:00
return ;
2014-07-31 08:48:17 +00:00
}
2013-03-01 16:03:10 +00:00
2014-07-31 08:48:17 +00:00
if ( ( isset ( $_GET [ 'action' ] ) && 'upgrade-plugin' == $_GET [ 'action' ] ) && ( isset ( $_GET [ 'plugin' ] ) && strstr ( $_GET [ 'plugin' ], 'woocommerce.php' ) ) ) {
2013-03-04 20:38:01 +00:00
return ;
2014-07-31 08:48:17 +00:00
}
2013-03-04 20:38:01 +00:00
2013-12-04 12:20:18 +00:00
wp_redirect ( admin_url ( 'index.php?page=wc-about' ) );
2013-03-01 16:03:10 +00:00
exit ;
}
}
2013-12-28 20:19:20 +00:00
new WC_Admin_Welcome ();