<?php if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } class asheRatingNotice { private $past_date; public function __construct() { global $pagenow; $this->past_date = strtotime( '-'.get_option('ashe_random_number').' days' ); if ( current_user_can('administrator') ) { if ( empty(get_option('ashe_rating_dismiss_notice', false)) && empty(get_option('ashe_rating_already_rated', false)) ) { add_action( 'admin_init', [$this, 'check_theme_install_time'] ); } } if ( is_admin() ) { add_action( 'admin_head', [$this, 'enqueue_scripts' ] ); } add_action( 'wp_ajax_ashe_rating_dismiss_notice', [$this, 'ashe_rating_dismiss_notice'] ); add_action( 'wp_ajax_ashe_rating_already_rated', [$this, 'ashe_rating_already_rated'] ); add_action( 'wp_ajax_ashe_rating_need_help', [$this, 'ashe_rating_need_help'] ); add_action( 'wp_ajax_ashe_rating_maybe_later', [$this, 'ashe_rating_maybe_later'] ); } public function check_theme_install_time() { $install_date = get_option('ashe_activation_time'); if ( false !== $install_date && $this->past_date >= $install_date ) { add_action( 'admin_notices', [$this, 'render_rating_notice' ]); } } public function ashe_rating_maybe_later() { update_option('ashe_random_number', 10); update_option('ashe_activation_time', strtotime('now')); } public function ashe_rating_dismiss_notice() { update_option( 'ashe_rating_dismiss_notice', true ); } function ashe_rating_already_rated() { update_option( 'ashe_rating_already_rated' , true ); } public function ashe_rating_need_help() { // Reset Activation Time if user Needs Help update_option('ashe_random_number', 10); update_option( 'ashe_activation_time', strtotime('now') ); } public function render_rating_notice() { global $pagenow; if ( is_admin() ) { echo '<div class="notice ashe-rating-notice is-dismissible" style="border-left-color: #0073aa!important; display: flex; align-items: center;"> <div class="ashe-rating-notice-logo"> <img class="ashe-logo" src="'.get_theme_file_uri().'/assets/images/ashe-blog.png"> </div> <div> <h3>Thank you for using Ashe Theme to build this website!</h3> <p>Could you please do us a BIG favor and give it a 5-star rating on WordPress? Just to help us spread the word and boost our motivation.</p> <p> <a href="https://wordpress.org/support/theme/ashe/reviews/#new-post" target="_blank" class="ashe-you-deserve-it button button-primary">OK, you deserve it!</a> <a class="ashe-maybe-later"><span class="dashicons dashicons-clock"></span> Maybe Later</a> <a class="ashe-already-rated"><span class="dashicons dashicons-yes"></span> I Already did</a> <a href="https://wp-royal-themes.com/contact/#!/cform" target="_blank" class="ashe-need-support"><span class="dashicons dashicons-sos"></span> I need support!</a> <a class="ashe-notice-dismiss-2"><span class="dashicons dashicons-thumbs-down"></span> NO, not good enough</a> </p> </div> </div>'; } } public function enqueue_scripts() { echo " <script> jQuery( document ).ready( function() { jQuery(document).on( 'click', '.ashe-notice-dismiss-2', function() { jQuery(document).find('.ashe-rating-notice').slideUp(); jQuery.post({ url: ajaxurl, data: { action: 'ashe_rating_dismiss_notice', } }) }); jQuery(document).on( 'click', '.ashe-maybe-later', function() { jQuery(document).find('.ashe-rating-notice').slideUp(); jQuery.post({ url: ajaxurl, data: { action: 'ashe_rating_maybe_later', } }) }); jQuery(document).on( 'click', '.ashe-already-rated', function() { jQuery(document).find('.ashe-rating-notice').slideUp(); jQuery.post({ url: ajaxurl, data: { action: 'ashe_rating_already_rated', } }) }); jQuery(document).on( 'click', '.ashe-need-support', function() { jQuery.post({ url: ajaxurl, data: { action: 'ashe_rating_need_help', } }) }); }); </script> <style> .ashe-rating-notice { padding: 0 15px; } .ashe-rating-notice-logo { margin-right: 20px; width: 100px; height: 100px; } .ashe-rating-notice-logo img { max-width: 100%; } .ashe-rating-notice h3 { margin-bottom: 0; } .ashe-rating-notice p { margin-top: 3px; margin-bottom: 15px; } .ashe-already-rated, .ashe-need-support, .ashe-notice-dismiss-2, .ashe-maybe-later { text-decoration: none; margin-left: 12px; font-size: 14px; cursor: pointer; } .ashe-already-rated .dashicons, .ashe-need-support .dashicons, .ashe-maybe-later .dashicons { vertical-align: sub; } .ashe-notice-dismiss-2 .dashicons { vertical-align: middle; } .ashe-rating-notice .notice-dismiss { display: none; } .ashe-logo { height: 100%; width: auto; } </style> "; } } if ( 'Ashe' === wp_get_theme()->get('Name')) { new asheRatingNotice(); }