Add a new note when the store is 3+ days old and product count is 0 (https://github.com/woocommerce/woocommerce-admin/pull/6019)

This commit is contained in:
Moon 2021-01-07 17:10:07 -08:00 committed by GitHub
parent bc998444a3
commit 50e0ff1599
2 changed files with 79 additions and 0 deletions

View File

@ -8,6 +8,7 @@ namespace Automattic\WooCommerce\Admin;
defined( 'ABSPATH' ) || exit; defined( 'ABSPATH' ) || exit;
use \Automattic\WooCommerce\Admin\Notes\AddingAndManangingProducts;
use \Automattic\WooCommerce\Admin\Notes\ChooseNiche; use \Automattic\WooCommerce\Admin\Notes\ChooseNiche;
use \Automattic\WooCommerce\Admin\Notes\ChoosingTheme; use \Automattic\WooCommerce\Admin\Notes\ChoosingTheme;
use \Automattic\WooCommerce\Admin\Notes\GivingFeedbackNotes; use \Automattic\WooCommerce\Admin\Notes\GivingFeedbackNotes;
@ -119,6 +120,7 @@ class Events {
DrawAttention::possibly_add_note(); DrawAttention::possibly_add_note();
ChoosingTheme::possibly_add_note(); ChoosingTheme::possibly_add_note();
InsightFirstProductAndPayment::possibly_add_note(); InsightFirstProductAndPayment::possibly_add_note();
AddingAndManangingProducts::possibly_add_note();
if ( $this->is_remote_inbox_notifications_enabled() ) { if ( $this->is_remote_inbox_notifications_enabled() ) {
DataSourcePoller::read_specs_from_data_sources(); DataSourcePoller::read_specs_from_data_sources();

View File

@ -0,0 +1,77 @@
<?php
/**
* WooCommerce Admin adding and managing products note provider
*
* Adds a note with a link to the manging products doc if store has been active > 3 days and
* product count is 0
*
* @package WooCommerce\Admin
*/
namespace Automattic\WooCommerce\Admin\Notes;
defined( 'ABSPATH' ) || exit;
/**
* Class AddingAndManangingProducts
*
* @package Automattic\WooCommerce\Admin\Notes
*/
class AddingAndManangingProducts {
/**
* Note traits.
*/
use NoteTraits;
/**
* Name of the note for use in the database.
*/
const NOTE_NAME = 'wc-admin-adding-and-managing-products';
/**
* Get the note.
*
* @return Note|null
*/
public static function get_note() {
// Store must have been at least 3 days.
if ( ! self::wc_admin_active_for( DAY_IN_SECONDS * 3 ) ) {
return;
}
// Total # of products must be 0.
$query = new \WC_Product_Query(
array(
'limit' => 1,
'paginate' => true,
'return' => 'ids',
'status' => array( 'publish' ),
)
);
$products = $query->get_products();
if ( 0 !== $products->total ) {
return;
}
$note = new Note();
$note->set_title( __( 'Adding and Managing Products', 'woocommerce-admin' ) );
$note->set_content(
__(
'Learn more about how to set up products in WooCommerce through our useful documentation about adding and managing products.',
'woocommerce-admin'
)
);
$note->set_content_data( (object) array() );
$note->set_type( Note::E_WC_ADMIN_NOTE_INFORMATIONAL );
$note->set_name( self::NOTE_NAME );
$note->set_source( 'woocommerce-admin' );
$note->add_action(
'learn-more',
__( 'Learn more', 'woocommerce-admin' ),
'https://docs.woocommerce.com/document/managing-products/?utm_source=inbox'
);
return $note;
}
}