0 ) { update_option( \FSVendor\WPDesk\Notice\PermanentDismissibleNotice::OPTION_NAME_PREFIX . $notice_name, 1 ); } } /** * Should display notice. * * @return bool */ private function should_display_notice() { $current_screen = get_current_screen(); $display_on_screens = [ 'shop_order', 'edit-shop_order', 'woocommerce_page_wc-settings' ]; if ( ! empty( $current_screen ) && in_array( $current_screen->id, $display_on_screens, true ) ) { return true; } return false; } /** * Generate rate notice variant ID * * @return string */ private function generate_rate_notice_variant_id() { $variant = get_option(self::SETTINGS_RATE_NOTICE_VARIANT_ID, '0'); if ( $variant === '0' ) { $variant = 'notice_' . mt_rand(1, 3); add_option( self::SETTINGS_RATE_NOTICE_VARIANT_ID, $variant ); $this->set_notice_defaults( $variant ); } return $variant; } /** * Set defaults for notice * * @param string $variant Variant ID. */ private function set_notice_defaults( $variant ) { if( 'notice_3' !== $variant ) { add_option( self::SETTINGS_OPTION_RATE_NOTICE_DATE_DISMISS, date( "Y-m-d H:i:s", strtotime('NOW + 2 weeks') ) ); } else { add_option( Flexible_Shipping_Order_Counter::FS_ORDER_COUNTER, 0 ); } } /** * Add admin notice. */ public function add_admin_notice_action() { $variant = $this->generate_rate_notice_variant_id(); if ( $this->should_display_notice() ) { $creator = new \WPDesk\FS\Rate\RateNoticeCreator(); $instance = $creator->create( $variant ); if( $instance->should_show_message() ) { $instance->show_message(); } } } }