Ajex select change texonomy and post
Thu Jul 06 2023 11:46:40 GMT+0000 (Coordinated Universal Time)
Saved by @gshailesh27
//Html page code <li> <label>Program </label> <select name="programs" class="selectedprograms" id="programs"> <option value="">Select Program</option> <?php $term = get_queried_object(); $details = get_field("contact_program_list_9_get", $term); foreach ($details as $detail) { $term = get_term($detail); echo '<option value="' . $detail . '"> ' . $term->name . "</option>"; } ?> </select> <div id="frm_programs_error" class="errormsg">Please select a program</div> </li> //On change ajax code ( add into footer ) $('.selectedprograms').on("change",function(e){ $('#loadingmessage').show(); let id= $(this).val(); var nimi = $(this).val(); jQuery.ajax({ url: '/wp-admin/admin-ajax.php', type: "POST", data: { 'action': 'addCustomer', 'programs': nimi, }, success: function (data) { jQuery(".selectedcity").html(data); $('#loadingmessage').hide(); } }); }); $('.selectedcity').on("change",function(e){ $('#loadingmessage').show(); let id= $(this).val(); let programid=$( "#programs option:selected" ).val(); if(programid == "" || programid == undefined){ return false; } var nimi = $(this).val(); jQuery.ajax({ url: '/wp-admin/admin-ajax.php', type: "POST", data: { 'action': 'post_language', 'nimi': { code: id, userid: programid }, }, success: function (data) { jQuery(".selectedregion").html(data); $('#loadingmessage').hide(); } }); }); //Function for ajax added into function.php <?php wp_enqueue_script("jquery"); function addCustomer() { global $wpdb; $programs = $_POST["programs"]; if (!empty($programs)) { $args = [ "post_type" => "contacts", "post_status" => "publish", "posts_per_page" => -1, "tax_query" => [ [ "taxonomy" => "contact_program_type", "field" => "term_id", "terms" => $programs, ], ], ]; $my_query = new WP_Query($args); if ($my_query->have_posts()): $cart = []; while ($my_query->have_posts()): $my_query->the_post(); $current_id = get_the_ID(); $term_list = get_the_terms($current_id, "contact_city"); foreach ($term_list as $term_single) { $cart[] = $term_single->term_id; } endwhile; endif; $arrays = array_unique($cart); $html = ""; foreach ($arrays as $array) { $html .= '<option value="' . get_term($array)->term_id . '">' . get_term($array)->name . "</option>"; // $term_name = get_term( $array )->name; } echo $html; } } add_action("wp_ajax_addCustomer", "addCustomer"); add_action("wp_ajax_nopriv_addCustomer", "addCustomer"); function add_our_script() { wp_register_script( "ajax-js", get_template_directory_uri() . "/scripts/keeled.js", ["jquery"], "", true ); wp_localize_script("ajax-js", "ajax-js_ajax", [ "ajax_url" => admin_url("admin-ajax.php"), ]); } add_action("wp_enqueue_scripts", "add_our_script"); function post_language() { $programs = $_POST; $args = [ "post_type" => "contacts", "post_status" => "publish", "posts_per_page" => -1, "tax_query" => [ "relation" => "AND", [ "taxonomy" => "contact_city", "field" => "term_id", "terms" => $programs["nimi"]["code"], ], [ "taxonomy" => "contact_program_type", "field" => "term_id", "terms" => $programs["nimi"]["userid"], ], ], ]; $my_query = new WP_Query($args); if ($my_query->have_posts()): $cart = []; while ($my_query->have_posts()): $my_query->the_post(); $current_id = get_the_ID(); $term_list = get_the_terms($current_id, "contact_city"); foreach ($term_list as $term_single) { $cart[] = $current_id; } endwhile; endif; $arrays = array_unique($cart); $html = ""; foreach ($arrays as $array) { $html .= '<option value="' . $array . '">' . get_the_title($array) . "</option>"; } echo $html; } add_action("wp_ajax_post_language", "post_language"); add_action("wp_ajax_nopriv_post_language", "post_language"); ?>
Comments