Skip to content
Snippets Groups Projects
Select Git revision
  • 96efa14919c4a4c246708389c20ee604c3a84735
  • master default protected
  • 1.6.4
  • 1.6.3
  • 1.6.2
  • 1.6.1
  • 1.6.0
  • 1.5.0
  • 1.4.0
  • 1.3.1
  • 1.3.0
  • 1.3.0-beta1
  • 1.2.1
  • 1.2.0
  • 1.2.0-beta5
  • 1.2.0-beta4
  • 1.2.0-beta3
  • 1.2.0-beta2
  • 1.2.0-beta1
  • 1.1.0
  • 1.0.0
21 results

style.css

Blame
  • AjaxHandler.php 3.56 KiB
    <?php
    
    namespace WPDesk\Notice;
    
    use WPDesk\PluginBuilder\Plugin\HookablePluginDependant;
    use WPDesk\PluginBuilder\Plugin\PluginAccess;
    
    /**
     * Class AjaxHandler
     *
     * AjaxHandler for dismissible notices.
     *
     * @package WPDesk\Notice
     */
    class AjaxHandler implements HookablePluginDependant {
    
        use PluginAccess;
    
        const POST_FIELD_NOTICE_NAME = 'notice_name';
        const POST_FIELD_SOURCE = 'source';
        const POST_FIELD_SECURITY = 'security';
    
        const SCRIPTS_VERSION = '4';
        const SCRIPT_HANDLE = 'wpdesk_notice';
        const SCRIPT_HANDLE_GUTENBERG = 'wpdesk_notice_gutenberg';
    
        /**
         * @var string
         */
        private $assetsURL;
    
        /**
         * AjaxHandler constructor.
         *
         * @param string|null $assetsURL Assets URL.
         */
        public function __construct( $assetsURL = null ) {
            $this->assetsURL = $assetsURL ?? plugins_url('/assets/', dirname(__FILE__, 3));
        }
    
        /**
         * Hooks.
         */
        public function hooks() {
            add_action( 'admin_enqueue_scripts', [ $this, 'enqueueAdminScripts' ] );
            add_action( 'wp_ajax_wpdesk_notice_dismiss', [ $this, 'processAjaxNoticeDismiss' ] );
        }
    
        public function isBlockEditor():bool
        {
    		if ( !function_exists( 'get_current_screen' ) ) {
    			return false;
    		}
    
    		$screen = \get_current_screen();
    
    		return is_object($screen) ? $screen->is_block_editor() : false;
        }
    
        /**
         * Enqueue admin scripts.
         */
        public function enqueueAdminScripts() {
            wp_register_script(
                self::SCRIPT_HANDLE,
                trailingslashit( $this->assetsURL ) . 'js/notice.js',
                [ 'jquery' ],
                self::SCRIPTS_VERSION
            );
            wp_enqueue_script( self::SCRIPT_HANDLE );