Untitled

 avatar
unknown
plain_text
a year ago
1.3 kB
17
Indexable
use function get_class_methods;


class AdminAjax {
	
	public function __construct() {
		$this->register_actions();
	}

	
	public function start_parsing() {

		if ( ! $this->verify( 'start_parsing' ) ) {
			echo wp_json_encode(
				array(
					'error' => 'Error request.',
				)
			);
			wp_die();
		}

		$categories = $this->get_post_field( 'category_fans', '' );
		
	}

	
	public static function get_nonce_field( string $action_name ) {
		wp_nonce_field( "of_{$action_name}_action", "of_{$action_name}_nonce" );
	}

	
	private function register_actions() {
		$methods = get_class_methods( $this );

		foreach ( $methods as $method ) {
			if ( '_' === substr( $method, 0, 1 ) ) {
				continue;
			}

			if ( 'register_actions' === $method ) {
				continue;
			}

			add_action( 'wp_ajax_' . $method, array( $this, $method ) );
			add_action( 'wp_ajax_nopriv_' . $method, array( $this, $method ) );
		}
	}


	private function verify( string $action_name ): bool {
		$nonce  = "of_{$action_name}_nonce";
		$action = "of_{$action_name}_action";

		return isset( $_POST[ $nonce ] ) && wp_verify_nonce( $_POST[ $nonce ], $action );
	}

	
	private function get_post_field( string $key, $default = '' ) {
		return isset( $_POST[ $key ] ) ? wp_unslash( $_POST[ $key ] ) : $default;
	}
}
Editor is loading...
Leave a Comment