Viewing file: NoteTraits.php (2.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /** * KKART Admin Note Traits * * KKART Admin Note Traits class that houses shared functionality across notes. */
namespace Automattic\Kkart\Admin\Notes;
defined( 'ABSPATH' ) || exit;
/** * NoteTraits class. */ trait NoteTraits { /** * Test how long Kkart Admin has been active. * * @param int $seconds Time in seconds to check. * @return bool Whether or not Kkart admin has been active for $seconds. */ public static function kkart_admin_active_for( $seconds ) { // Getting install timestamp reference class-kkart-admin-install.php. $kkart_admin_installed = get_option( 'kkart_admin_install_timestamp', false );
if ( false === $kkart_admin_installed ) { update_option( 'kkart_admin_install_timestamp', time() );
return false; }
return ( ( time() - $kkart_admin_installed ) >= $seconds ); }
/** * Check if the note has been previously added. */ public static function note_exists() { $data_store = \KKART_Data_Store::load( 'admin-note' ); $note_ids = $data_store->get_notes_with_name( self::NOTE_NAME ); return ! empty( $note_ids ); }
/** * Checks if a note can and should be added. * * @return bool */ public static function can_be_added() { $note = self::get_note();
if ( ! $note instanceof Note && ! $note instanceof KKART_Admin_Note ) { return; }
if ( self::note_exists() ) { return false; }
if ( 'no' === get_option( 'kkart_show_marketplace_suggestions', 'yes' ) && Note::E_KKART_ADMIN_NOTE_MARKETING === $note->get_type() ) { return false; }
return true; }
/** * Add the note if it passes predefined conditions. */ public static function possibly_add_note() { $note = self::get_note();
if ( ! self::can_be_added() ) { return; }
$note->save(); }
/** * Alias this method for backwards compatibility. */ public static function add_note() { self::possibly_add_note(); }
/** * Possibly delete the note, if it exists in the database. Note that this * is a hard delete, for where it doesn't make sense to soft delete or * action the note. */ public static function possibly_delete_note() { $data_store = \KKART_Data_Store::load( 'admin-note' ); $note_ids = $data_store->get_notes_with_name( self::NOTE_NAME );
foreach ( $note_ids as $note_id ) { $note = Notes::get_note( $note_id );
if ( $note ) { $data_store->delete( $note ); } } }
/** * Get if the note has been actioned. * * @return bool */ public static function has_note_been_actioned() { $data_store = \KKART_Data_Store::load( 'admin-note' ); $note_ids = $data_store->get_notes_with_name( self::NOTE_NAME );
if ( ! empty( $note_ids ) ) { $note = Notes::get_note( $note_ids[0] );
if ( Note::E_KKART_ADMIN_NOTE_ACTIONED === $note->get_status() ) { return true; } }
return false; } }
|