get_version(); $dir = charitable()->get_path( 'directory', false ); $assets = charitable()->get_path( 'assets', false ); // Floating UI (Shepherd dependency). wp_enqueue_script( 'charitable-float-ui-core', $dir . 'assets/js/libraries/floating-ui-core.min.js', array( 'jquery' ), $version ); wp_enqueue_script( 'charitable-float-ui-dom', $dir . 'assets/js/libraries/floating-ui-dom.min.js', array( 'charitable-float-ui-core' ), $version ); // Shepherd.js. wp_enqueue_script( 'charitable-shepherd', $dir . 'assets/js/libraries/shepherd.js', array( 'jquery', 'charitable-float-ui-core', 'charitable-float-ui-dom' ), $version ); wp_enqueue_style( 'charitable-shepherd', $dir . "assets/css/libraries/shepherd{$min}.css", array(), $version ); // Tour script. wp_enqueue_script( 'charitable-notifications-tour', $dir . "assets/js/admin/charitable-notifications-tour{$min}.js", array( 'jquery', 'charitable-shepherd' ), $version . '.' . filemtime( charitable()->get_path( 'directory' ) . "assets/js/admin/charitable-notifications-tour{$min}.js" ), true ); wp_localize_script( 'charitable-notifications-tour', 'CHARITABLE_NOTIF_TOUR', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'nonce' => wp_create_nonce( 'charitable_admin_nonce' ), ) ); } /** * AJAX — mark the tour dismissed for the current user. */ public function ajax_dismiss() { check_ajax_referer( 'charitable_admin_nonce', 'nonce' ); update_user_meta( get_current_user_id(), self::TOUR_META_KEY, true ); wp_send_json_success(); } }