2020-06-22 12:49:24 +00:00
< ? php
/**
* WooCommerce Admin : Customize your online store with WooCommerce blocks .
*
* Adds a note to customize the client online store with WooCommerce blocks .
*
2020-08-11 19:18:47 +00:00
* @ package WooCommerce\Admin
2020-06-22 12:49:24 +00:00
*/
2022-03-08 13:55:27 +00:00
namespace Automattic\WooCommerce\Internal\Admin\Notes ;
2020-06-22 12:49:24 +00:00
defined ( 'ABSPATH' ) || exit ;
2022-03-08 13:55:27 +00:00
use \Automattic\WooCommerce\Admin\Notes\Note ;
use \Automattic\WooCommerce\Admin\Notes\NoteTraits ;
2020-06-22 12:49:24 +00:00
/**
2020-09-28 04:35:10 +00:00
* Customize_Store_With_Blocks .
2020-06-22 12:49:24 +00:00
*/
2020-10-28 17:12:14 +00:00
class CustomizeStoreWithBlocks {
2020-06-22 12:49:24 +00:00
/**
* Note traits .
*/
use NoteTraits ;
/**
* Name of the note for use in the database .
*/
const NOTE_NAME = 'wc-admin-customize-store-with-blocks' ;
/**
* Get the note .
2020-09-28 04:35:10 +00:00
*
* @ return Note
2020-06-22 12:49:24 +00:00
*/
public static function get_note () {
$onboarding_profile = get_option ( 'woocommerce_onboarding_profile' , array () );
// Confirm that $onboarding_profile is set.
if ( empty ( $onboarding_profile ) ) {
return ;
}
// Make sure that the person who filled out the OBW was not setting up
// the store for their customer/client.
2020-07-06 17:09:54 +00:00
if (
! isset ( $onboarding_profile [ 'setup_client' ] ) ||
$onboarding_profile [ 'setup_client' ]
) {
2020-06-22 12:49:24 +00:00
return ;
}
// We want to show the note after fourteen days.
2021-06-24 14:32:02 +00:00
if ( ! self :: is_wc_admin_active_in_date_range ( 'week-1-4' , 14 * DAY_IN_SECONDS ) ) {
2020-06-22 12:49:24 +00:00
return ;
}
// Don't show if there aren't products.
$query = new \WC_Product_Query (
array (
'limit' => 1 ,
'return' => 'ids' ,
'status' => array ( 'publish' ),
)
);
$products = $query -> get_products ();
if ( 0 === count ( $products ) ) {
return ;
}
2020-09-28 04:35:10 +00:00
$note = new Note ();
2020-06-22 12:49:24 +00:00
$note -> set_title ( __ ( 'Customize your online store with WooCommerce blocks' , 'woocommerce-admin' ) );
$note -> set_content ( __ ( 'With our blocks, you can select and display products, categories, filters, and more virtually anywhere on your site — no need to use shortcodes or edit lines of code. Learn more about how to use each one of them.' , 'woocommerce-admin' ) );
2020-09-28 04:35:10 +00:00
$note -> set_type ( Note :: E_WC_ADMIN_NOTE_INFORMATIONAL );
2020-06-22 12:49:24 +00:00
$note -> set_name ( self :: NOTE_NAME );
$note -> set_content_data ( ( object ) array () );
$note -> set_source ( 'woocommerce-admin' );
$note -> add_action (
'customize-store-with-blocks' ,
__ ( 'Learn more' , 'woocommerce-admin' ),
2021-08-03 20:56:43 +00:00
'https://woocommerce.com/posts/how-to-customize-your-online-store-with-woocommerce-blocks/?utm_source=inbox&utm_medium=product' ,
2020-09-28 04:35:10 +00:00
Note :: E_WC_ADMIN_NOTE_ACTIONED ,
2020-06-22 12:49:24 +00:00
true
);
return $note ;
}
}