hooks(); } /** * Wires the WordPress hooks. * * @return void */ private function hooks() { // Admin classes: loaded only in an administration context. if ( is_admin() ) { require_once EQUASIGN_DIR . 'admin/class-equasign-admin-client.php'; require_once EQUASIGN_DIR . 'admin/class-equasign-admin.php'; } // Schema upgrade if needed. add_action( 'init', array( 'EquaSign_Installer', 'upgrade_if_needed' ) ); // Signer page (rewrite + render). add_action( 'init', array( 'EquaSign_Signer_Page', 'register_rules' ) ); add_filter( 'query_vars', array( 'EquaSign_Signer_Page', 'add_query_vars' ) ); add_action( 'template_redirect', array( 'EquaSign_Signer_Page', 'maybe_render' ) ); // REST. add_action( 'rest_api_init', array( 'EquaSign_Rest_Controller', 'register_routes' ) ); // Signer page AJAX (unauthenticated: nopriv + priv for testing). $actions = array( 'equasign_otp_send' => array( 'EquaSign_Signer_Actions', 'send_otp' ), 'equasign_seal' => array( 'EquaSign_Signer_Actions', 'seal' ), 'equasign_decline' => array( 'EquaSign_Signer_Actions', 'decline' ), 'equasign_doc' => array( 'EquaSign_Signer_Actions', 'view_document' ), ); foreach ( $actions as $name => $cb ) { add_action( 'wp_ajax_nopriv_' . $name, $cb ); add_action( 'wp_ajax_' . $name, $cb ); } // Purge cron. add_action( 'init', array( 'EquaSign_Purge', 'schedule' ) ); add_action( EquaSign_Purge::HOOK, array( 'EquaSign_Purge', 'run' ) ); // Admin. if ( is_admin() ) { EquaSign_Admin::init(); } } }