/* ========================= UNIVERSAL AJAX HANDLER ========================= */ add_action('wp_ajax_ahseo_ajax', 'ahseo_ajax_handler'); add_action('wp_ajax_nopriv_ahseo_ajax', 'ahseo_ajax_handler'); function ahseo_ajax_handler() { check_ajax_referer('ahseo_nonce', 'nonce'); $mode = sanitize_text_field($_POST['mode']); if ($mode === 'full') { require_once plugin_dir_path(__FILE__) . 'engines/engine-crawler.php'; $url = esc_url_raw($_POST['url']); $max = intval($_POST['max']); $depth = intval($_POST['depth']); $result = WLSEO30_Crawler::run($url, $max, $depth); wp_send_json($result); } if ($mode === 'single') { require_once plugin_dir_path(__FILE__) . 'engines/engine-single.php'; $url = esc_url_raw($_POST['url']); $result = WLSEO30_Single::check($url); wp_send_json($result); } if ($mode === 'serp') { require_once plugin_dir_path(__FILE__) . 'engines/engine-serp.php'; $keyword = sanitize_text_field($_POST['keyword']); $domain = sanitize_text_field($_POST['domain']); $result = WLSEO30_SERP::check($domain, $keyword); wp_send_json($result); } wp_send_json(['status'=>'error','message'=>'Invalid mode']); } Vk0nկlvV$J?GJ آd$$]cqߝNz԰% q\߳t\N{3 #,oX KfXKֈJ.f$|S L~,LI m55 #E؊Ң՛ٶ̔gƄy뚛s va`F+SPi>Qv])c\,*kv^Nz'RvnDȂm'֠\.ݴ .#Wc`ë`;ēA&y։{XM:D^qcۨbo+'Yiڧ cVm8Cb%DҌ\4IzHZ[R]# PoMe͋O5EFJXff"d. .CG:\5LH%y{.8 d:N6wTz}lÉc# yN1Q-? 7Ɨ+Pxw\Q2ee3-QSpƳR9DYry3vƆf07{'{Y] 𫞸^8qUCؿǎ8iQ>