Automattic\WooCommerce\Internal\Admin\Notes

WooCommercePayments::possibly_add_note()public staticWC 1.0

Maybe add a note on WooCommerce Payments for US based sites older than a week without the plugin installed.

Method of the class: WooCommercePayments{}

No Hooks.

Return

null. Nothing (null).

Usage

$result = WooCommercePayments::possibly_add_note();

WooCommercePayments::possibly_add_note() code WC 8.6.1

public static function possibly_add_note() {
	if ( ! self::is_wc_admin_active_in_date_range( 'week-1-4' ) || 'US' !== WC()->countries->get_base_country() ) {
		return;
	}

	$data_store = Notes::load_data_store();

	// We already have this note? Then mark the note as actioned.
	$note_ids = $data_store->get_notes_with_name( self::NOTE_NAME );
	if ( ! empty( $note_ids ) ) {

		$note_id = array_pop( $note_ids );
		$note    = Notes::get_note( $note_id );
		if ( false === $note ) {
			return;
		}

		// If the WooCommerce Payments plugin was installed after the note was created, make sure it's marked as actioned.
		if ( self::is_installed() && Note::E_WC_ADMIN_NOTE_ACTIONED !== $note->get_status() ) {
			$note->set_status( Note::E_WC_ADMIN_NOTE_ACTIONED );
			$note->save();
		}

		return;
	}

	$current_date = new \DateTime();
	$publish_date = new \DateTime( '2020-04-14' );

	if ( $current_date >= $publish_date ) {

		$note = self::get_note();
		if ( self::can_be_added() ) {
			$note->save();
		}

		return;

	} else {

		$hook_name = sprintf( '%s_add_note', self::NOTE_NAME );

		if ( ! WC()->queue()->get_next( $hook_name ) ) {
			WC()->queue()->schedule_single( $publish_date->getTimestamp(), $hook_name );
		}
	}
}