name = $name; $this->type = $type; $this->dismiss_url = $dismiss_url; $this->temporary_dismiss_url = $temporary_dismiss_url; $this->pricing_url = 'https://zakratheme.com/pricing/?utm_source=zakra-dashboard-message&utm_medium=view-pricing-link&utm_campaign=upgrade'; $this->current_user_id = get_current_user_id(); // Notice markup. add_action( 'admin_notices', array( $this, 'notice' ) ); $this->dismiss_notice(); $this->dismiss_notice_temporary(); } public function notice() { if ( ! $this->is_dismiss_notice() ) { $this->notice_markup(); } } private function is_dismiss_notice() { return apply_filters( 'zakra_' . $this->name . '_notice_dismiss', true ); } public function notice_markup() { echo ''; } /** * Hide a notice if the GET variable is set. */ public function dismiss_notice() { if ( isset( $_GET['zakra_notice_dismiss'] ) && isset( $_GET['_zakra_upgrade_notice_dismiss_nonce'] ) ) { // WPCS: input var ok. if ( ! wp_verify_nonce( wp_unslash( $_GET['_zakra_upgrade_notice_dismiss_nonce'] ), 'zakra_upgrade_notice_dismiss_nonce' ) ) { // phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotSanitized wp_die( __( 'Action failed. Please refresh the page and retry.', 'zakra' ) ); // WPCS: xss ok. } if ( ! current_user_can( 'publish_posts' ) ) { wp_die( __( 'Cheatin’ huh?', 'zakra' ) ); // WPCS: xss ok. } $dismiss_notice = sanitize_text_field( wp_unslash( $_GET['zakra_notice_dismiss'] ) ); // Hide. if ( $dismiss_notice === $_GET['zakra_notice_dismiss'] ) { add_user_meta( get_current_user_id(), 'zakra_' . $dismiss_notice . '_notice_dismiss', 'yes', true ); } } } public function dismiss_notice_temporary() { if ( isset( $_GET['zakra_notice_dismiss_temporary'] ) && isset( $_GET['_zakra_upgrade_notice_dismiss_temporary_nonce'] ) ) { // WPCS: input var ok. if ( ! wp_verify_nonce( wp_unslash( $_GET['_zakra_upgrade_notice_dismiss_temporary_nonce'] ), 'zakra_upgrade_notice_dismiss_temporary_nonce' ) ) { // phpcs:ignore WordPress.VIP.ValidatedSanitizedInput.InputNotSanitized wp_die( __( 'Action failed. Please refresh the page and retry.', 'zakra' ) ); // WPCS: xss ok. } if ( ! current_user_can( 'publish_posts' ) ) { wp_die( __( 'Cheatin’ huh?', 'zakra' ) ); // WPCS: xss ok. } $dismiss_notice = sanitize_text_field( wp_unslash( $_GET['zakra_notice_dismiss_temporary'] ) ); // Hide. if ( $dismiss_notice === $_GET['zakra_notice_dismiss_temporary'] ) { add_user_meta( get_current_user_id(), 'zakra_' . $dismiss_notice . '_notice_dismiss_temporary', 'yes', true ); } } } }