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 .
*
2014-11-17 15:56:36 +00:00
* @ author WooThemes
* @ category Admin
* @ package WooCommerce / Admin
2015-03-03 18:05:55 +00:00
* @ version 2.3 . 0
2013-03-01 16:03:10 +00:00
*/
2014-09-20 19:52:30 +00:00
if ( ! defined ( 'ABSPATH' ) ) {
exit ; // Exit if accessed directly
}
2013-03-01 16:03:10 +00:00
/**
2014-11-17 15:56: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
/**
2014-11-17 15:56:36 +00:00
* Hook in tabs .
2013-03-01 16:03:10 +00:00
*/
public function __construct () {
add_action ( 'admin_menu' , array ( $this , 'admin_menus' ) );
add_action ( 'admin_head' , array ( $this , 'admin_head' ) );
add_action ( 'admin_init' , array ( $this , 'welcome' ) );
}
/**
2014-11-17 15:56:36 +00:00
* Add admin menus / screens .
2013-03-01 16:03:10 +00:00
*/
public function admin_menus () {
2014-11-30 06:52:32 +00:00
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' ) );
2014-11-17 16:42:39 +00:00
add_action ( 'admin_print_styles-' . $page , array ( $this , 'admin_css' ) );
2014-04-29 13:03:10 +00:00
break ;
case 'wc-credits' :
$page = add_dashboard_page ( $welcome_page_title , $welcome_page_name , 'manage_options' , 'wc-credits' , array ( $this , 'credits_screen' ) );
2014-11-17 16:42:39 +00:00
add_action ( 'admin_print_styles-' . $page , array ( $this , 'admin_css' ) );
2014-04-29 13:03:10 +00:00
break ;
case 'wc-translators' :
$page = add_dashboard_page ( $welcome_page_title , $welcome_page_name , 'manage_options' , 'wc-translators' , array ( $this , 'translators_screen' ) );
2014-11-17 16:42:39 +00:00
add_action ( 'admin_print_styles-' . $page , array ( $this , 'admin_css' ) );
2014-04-29 13:03:10 +00:00
break ;
}
2013-03-01 16:03:10 +00:00
}
/**
* admin_css function .
*/
public function admin_css () {
2014-11-17 16:18:15 +00:00
wp_enqueue_style ( 'woocommerce-activation' , WC () -> plugin_url () . '/assets/css/activation.css' , array (), WC_VERSION );
2013-03-01 16:03:10 +00:00
}
/**
* Add styles just for this page , and remove dashboard page links .
*/
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 ;
2014-12-23 15:04:46 +00:00
margin : 20 px 0 ! important ;
2013-11-19 16:18:44 +00:00
}
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 ;
}
2013-03-01 16:03:10 +00:00
/*]]>*/
</ style >
< ? php
}
/**
2014-11-17 15:56:36 +00:00
* Intro text / links shown on all about pages .
2013-03-01 16:03:10 +00:00
*/
private function intro () {
2013-03-06 13:43:53 +00:00
// Flush after upgrades
2014-11-30 06:52:32 +00:00
if ( ! empty ( $_GET [ 'wc-updated' ] ) || ! empty ( $_GET [ 'wc-installed' ] ) ) {
2013-03-06 13:43:53 +00:00
flush_rewrite_rules ();
2014-11-30 06:52:32 +00:00
}
2013-03-06 13:43:53 +00:00
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 );
2015-02-19 11:16:24 +00:00
// Random tweet - must be kept to 102 chars to "fit"
$tweets = array (
'WooCommerce kickstarts online stores. It\'s free and has been downloaded over 6 million times.' ,
'Building an online store? WooCommerce is the leading #eCommerce plugin for WordPress (and it\'s free).' ,
'WooCommerce is a free #eCommerce plugin for #WordPress for selling #allthethings online, beautifully.' ,
'Ready to ship your idea? WooCommerce is the fastest growing #eCommerce plugin for WordPress on the web'
);
shuffle ( $tweets );
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
2014-11-17 17:14:49 +00:00
if ( ! empty ( $_GET [ 'wc-installed' ] ) ) {
2013-03-01 16:03:10 +00:00
$message = __ ( 'Thanks, all done!' , 'woocommerce' );
2014-11-17 17:14:49 +00:00
} elseif ( ! empty ( $_GET [ 'wc-updated' ] ) ) {
2013-03-01 16:03:10 +00:00
$message = __ ( 'Thank you for updating to the latest version!' , 'woocommerce' );
2014-11-17 17:14:49 +00:00
} else {
2013-03-01 16:03:10 +00:00
$message = __ ( 'Thanks for installing!' , 'woocommerce' );
2014-11-17 17:14:49 +00:00
}
2013-03-01 16:03:10 +00:00
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>
2015-02-19 11:16:24 +00:00
< a href = " https://twitter.com/share " class = " twitter-share-button " data - url = " http://www.woothemes.com/woocommerce/ " data - text = " <?php echo esc_attr( $tweets[0] ); ?> " data - via = " WooThemes " data - size = " large " > 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 " >
2015-01-13 16:12:51 +00:00
< h4 >< ? php _e ( 'UI Overhaul' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'We\'ve updated the user interface on both the front and backend of WooCommerce 2.3 "Handsome Hippo".' , 'woocommerce' ); ?> </p>
< div class = " changelog about-integrations " >
< div class = " wc-feature feature-section col three-col " >
< div >
< h4 >< ? php _e ( 'Frontend UI Improvements' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'On the frontend there are several UX enhancements such as the undo-remove-from cart link and responsive table design as well as a fresh, modern look which meshes more fluidly with the current design trends of default WordPress themes.' , 'woocommerce' ); ?> </p>
</ div >
< div >
< h4 >< ? php _e ( 'Backend UI Improvements' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'On the backend, settings have been re-organised and perform better on hand-held devices for an all round improved user experience. ' , 'woocommerce' ); ?> </p>
</ div >
< div class = " last-feature " >
< h4 >< ? php _e ( 'Webhooks UI' , 'woocommerce' ); ?> </h4>
2015-03-03 18:05:55 +00:00
< p >< ? php printf ( __ ( 'As part of the API, we\'ve introduced a UI for the Webhook system in WooCommerce 2.3. This makes it easier for 3rd party apps to integrate with WooCommerce. Read more in our %sdocs%s.' , 'woocommerce' ), '<a href="http://docs.woothemes.com/document/webhooks/">' , '</a>' ); ?> </p>
2015-01-13 16:12:51 +00:00
</ div >
2013-03-01 16:03:10 +00:00
</ div >
</ div >
2013-11-19 16:18:44 +00:00
</ div >
2015-01-13 16:12:51 +00:00
< div class = " changelog " >
< div class = " feature-section col three-col " >
2013-03-01 16:03:10 +00:00
< div >
2015-01-13 16:12:51 +00:00
< h4 >< ? php _e ( 'Geo-locating Customer Location' , 'woocommerce' ); ?> </h4>
< p >< ? php printf ( __ ( 'We have added a new option to geolocate the "Default Customer Location". Coupled with ability to show taxes in your store based on this location, you can show relevant prices store-wide. Enable this in the %ssettings%s.' , 'woocommerce' ), '<a href="' . admin_url ( 'admin.php?page=wc-settings&tab=tax' ) . '">' , '</a>' ); ?> </p>
2013-11-19 16:18:44 +00:00
</ div >
< div >
2015-01-13 16:12:51 +00:00
< h4 >< ? php _e ( 'Color Customization' , 'woocommerce' ); ?> </h4>
< p >< ? php printf ( __ ( 'If you\'re looking to customise the look and feel of the frontend in 2.3, take a look at the free %sWooCommerce Colors plugin%s. This lets you change the colors with a live preview.' , 'woocommerce' ), '<a href="https://wordpress.org/plugins/woocommerce-colors/">' , '</a>' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
< div class = " last-feature " >
2015-01-13 16:12:51 +00:00
< h4 >< ? php _e ( 'Improved Reports' , 'woocommerce' ); ?> </h4>
< p >< ? php _e ( 'Sales reports can now show net and gross amounts, we\'ve added a print stylesheet, and added extra data on refunds to reports.' , 'woocommerce' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
</ div >
< div class = " feature-section col three-col " >
< div >
2015-01-13 16:12:51 +00:00
< h4 >< ? php _e ( 'Improved Simplify Gateway' , 'woocommerce' ); ?> </h4>
< p >< ? php printf ( __ ( 'The built in Simplify Commerce Gateway (available in the US) now supports %sHosted Payments%s - a PCI Compliant hosted payment platform.' , 'woocommerce' ), '<a href="https://www.simplify.com/commerce/docs/tools/hosted-payments">' , '</a>' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
< div >
2015-01-13 16:12:51 +00:00
< h4 >< ? php _e ( 'Email Template Improvements' , 'woocommerce' ); ?> </h4>
< p >< ? php printf ( __ ( 'To make email customization simpler, we\'ve included a CSS Inliner in this release, some new template files for styling emails, and some additional hooks for developers. Read more on our %sdeveloper blog%s.' , 'woocommerce' ), '<a href="http://develop.woothemes.com/woocommerce/2014/10/2-3-emails/">' , '</a>' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
< div class = " last-feature " >
2015-01-13 16:12:51 +00:00
< h4 >< ? php _e ( 'Simplified Coupon System' , 'woocommerce' ); ?> </h4>
< p >< ? php printf ( __ ( 'We have simplified the coupon system to ensure discounts are never applied to taxes, and we\'ve improved support for discounting products inclusive of tax. Read more on our %sdevelop blog%s.' , 'woocommerce' ), '<a href="http://develop.woothemes.com/woocommerce/2014/12/upcoming-coupon-changes-in-woocommerce-2-3/">' , '</a>' ); ?> </p>
2013-03-01 16:03:10 +00:00
</ div >
</ div >
2014-08-27 20:26:45 +00:00
</ div >
2014-08-27 22:54:09 +00:00
2014-11-17 16:42:39 +00:00
< hr />
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
}
/**
2014-11-17 15:56:36 +00:00
* Output the credits screen .
2013-03-01 16:03:10 +00:00
*/
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
}
/**
2014-11-17 15:56:36 +00:00
* Output the translators screen .
2014-02-07 13:06:20 +00:00
*/
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 " >
2015-01-13 16:16:01 +00:00
< 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/ANNEMARIEDEHAAN11 " > ANNEMARIEDEHAAN11 </ a > , < a href = " https://www.transifex.com/accounts/profile/Abdumejid " > Abdumejid </ a > , < a href = " https://www.transifex.com/accounts/profile/Adam_Bajer " > Adam_Bajer </ a > , < a href = " https://www.transifex.com/accounts/profile/AeAdawi " > AeAdawi </ a > , < a href = " https://www.transifex.com/accounts/profile/Aerendir " > Aerendir </ a > , < a href = " https://www.transifex.com/accounts/profile/Ahmed_Na " > Ahmed_Na </ a > , < a href = " https://www.transifex.com/accounts/profile/AlexSunnO " > AlexSunnO </ 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/Ana_Sofia_Figueiredo " > Ana_Sofia_Figueiredo </ 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/Anne19 " > Anne19 </ 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/BaronAndrea " > BaronAndrea </ 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/BlackJad " > BlackJad </ a > , < a href = " https://www.transifex.com/accounts/profile/Bogusław " > Bogusław </ a > , < a href = " https://www.transifex.com/accounts/profile/CVSz " > CVSz </ 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/CodeSupply " > CodeSupply </ a > , < a href = " https://www.transifex.com/accounts/profile/Compute " > Compute </ a > , < a href = " https://www.transifex.com/accounts/profile/CreativeAngels " > CreativeAngels </ 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/DNCTrung " > DNCTrung </ a > , < a href = " https://www.transifex.com/accounts/profile/Dandebortoli " > Dandebortoli </ a > , < a href = " https://www.transifex.com/accounts/profile/DanielDoinitsin " > DanielDoinitsin </ a > , < a href = " https://www.transifex.com/accounts/profile/Davidinosuper " > Davidinosuper </ 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/Dorawiniweb " > Dorawiniweb </ a > , < a href = " https://www.transifex.com/accounts/profile/Ekushey " > Ekushey </ a > , < a href = " https://www.transifex.com/accounts/profile/EmilEriksen " > EmilEriksen </ a > , < a href = " https://www.transifex.com/accounts/profile/Ewald " > Ewald </ a > , < a href = " https://www.transifex.com/accounts/profile/Falk " > Falk </ a > , < a href = " https://www.transifex.com/accounts/profile/FaniDesign " > FaniDesign </ 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/Flums " > Flums </ a > , < a href = " https://www.transifex.com/accounts/profile/Fra
2014-07-31 08:48:17 +00:00
</ p >
2013-03-01 16:03:10 +00:00
</ div >
< ? php
}
/**
2014-11-17 15:56:36 +00:00
* Render Contributors List .
2013-03-01 16:03:10 +00:00
*
* @ 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
*
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
2015-05-05 12:39:34 +00:00
$response = wp_remote_get ( 'https://api.github.com/repos/woothemes/woocommerce/contributors' );
2013-03-01 16:03:10 +00:00
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 ;
}
/**
2014-11-17 15:56:36 +00:00
* Sends user to the welcome page on first activation .
2013-03-01 16:03:10 +00:00
*/
public function welcome () {
2014-11-30 06:52:32 +00:00
2013-03-05 18:50:44 +00:00
// Bail if no activation redirect transient is set
2014-11-17 15:56:36 +00:00
if ( ! get_transient ( '_wc_activation_redirect' ) ) {
2013-03-01 16:03:10 +00:00
return ;
2014-11-17 15:56:36 +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
2015-01-20 15:23:34 +00:00
if ( WC_Admin_Notices :: has_notice ( 'install' ) || WC_Admin_Notices :: has_notice ( 'update' ) ) {
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
2015-02-17 15:24:12 +00:00
if ( ( isset ( $_GET [ 'action' ] ) && 'upgrade-plugin' == $_GET [ 'action' ] ) || ( ! empty ( $_GET [ 'page' ] ) && $_GET [ 'page' ] === 'wc-about' ) ) {
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 ();