Việc sử dụng ajax trong wordpress là rất nhiều khi lập trình theme hay plugin. Sau đây mình xin gửi đến anh/chị các code phổ dụng để copy xài cho nhanh
Xử lý các tác vụ đơn giản về text không liên quan đến upload file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$(document).on('submit', '#create-data-visitor-statistic', function(e){ e.preventDefault(); var submit_data = { action: 'create_data_visitor_statistic', data: $(this).serialize() }; console.log(submit_data); $.ajax({ type: 'POST', url: '<?php echo admin_url('admin-ajax.php'); ?>', //url: kitimportelementor_vars.ajax_url, data: submit_data, success: function ( response ) { console.log(response); if (response.success ) { $('.shop-container').html(response.data); location.reload(); } } }); }); |
Nếu tác vụ nào có liên quan đến upload file thì xài theo cách này
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
$(document).on('click','section.alow-flowers-real-images form#js_activity_feed_form .edtCmt .boxemotion .motionsend .cmt_right #btnSendCmt',function(e){ e.preventDefault(); var content = $('section.alow-flowers-real-images form#js_activity_feed_form .edtCmt textarea#content').val(); if(content == ''){ alert("Bạn chưa nhập nội dung!"); $('section.alow-flowers-real-images form#js_activity_feed_form .edtCmt textarea#content').focus(); return false; } var form_data = new FormData(); //File data var file_data = $('section.alow-flowers-real-images form#js_activity_feed_form .edtCmt .boxemotion .motionsend input#hdFileCmtUpload')[0].files; console.log(file_data); for (var i = 0; i < file_data.length; i++) { form_data.append("images[]", file_data[i]); } var comment_data = $('section.alow-flowers-real-images form#js_activity_feed_form').serialize(); form_data.append('comment_data', comment_data); form_data.append('action', 'rcaot_send_comment'); $(this).html('<i class="fa fa-spinner fa-spin "></i> Đang gửi'); console.log(form_data); $.ajax({ cache: false, contentType: false, processData: false, data: form_data, type: 'post', url: rcaot_object.ajax_url, cache:false, dataType: 'JSON', success:function(response){ console.log(response); if (response.success ) { alert("Đã tạo ảnh thực tế thành công!"); $('section.alow-flowers-real-images form#js_activity_feed_form .edtCmt .boxemotion .motionsend .cmt_right #btnSendCmt').html('Gửi'); location.reload(); } } }); }); |
1 2 3 4 5 6 7 8 9 |
add_action("wp_ajax_create_data", array($this, 'create_data' ) ); add_action("wp_ajax_nopriv_create_data", array($this, 'create_data' ) ); function create_data(){ //cac lenh xu ly o day parse_str($_POST['data'],$output); //$output sẽ là dữ liệu submit bằng serialize() $results=''; wp_send_json_success($results); } |
1 |
<span class="fa fa-circle-o-notch fa-spin"></span> |
Với vaydep_filter_custom là action và vaydep_filter_custom_ajax là function xử lý, chỉ cần thêm fa-spin là chúng ta sẽ có animate của icon đó ví dụ
1 |
<i class="fa fa-spinner fa-spin"></i> |
1 |
$(this).html('<span class="spinner is-active"></span> Kiểm tra'); |
1 2 3 4 5 6 7 8 9 10 11 12 |
function ajaxs(){ $actions = array( //action => function 'yesAreYouSureDeleteThisLicense' => 'yesAreYouSureDeleteThisLicense' ); if($actions){ foreach($actions as $action => $function){ add_action("wp_ajax_".$action, array($this,$function)); add_action("wp_ajax_nopriv_".$action, array($this,$function)); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<i class="fa fa-spinner fa-spin fa-3x fa-fw"></i> <span class="sr-only">Loading...</span> <i class="fa fa-circle-o-notch fa-spin fa-3x fa-fw"></i> <span class="sr-only">Loading...</span> <i class="fa fa-refresh fa-spin fa-3x fa-fw"></i> <span class="sr-only">Loading...</span> <i class="fa fa-cog fa-spin fa-3x fa-fw"></i> <span class="sr-only">Loading...</span> <i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i> <span class="sr-only">Loading...</span> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
function productSortBy(){ //cac lenh xu ly o day parse_str($_POST['data'],$output); if($output['orderby'] == 'menu_order' || $output['orderby'] == 'price'){ $order = 'ASC'; }elseif($output['orderby'] == 'price-desc'){ $order = 'DESC'; } $posts_per_page = get_option('posts_per_page'); $offset = ($output['paged'] - 1) * $posts_per_page; $results=array(); $args = array( 'post_type' => 'product', 'posts_per_page' => $posts_per_page, 'post_status' => 'publish', 'offset' => $offset, 'meta_key' => 'price_regular', 'orderby' => 'meta_value_num', 'order' => $order , ); $loadPosts = new \WP_Query( $args ); ob_start(); if($loadPosts){ while ( $loadPosts->have_posts() ){ $loadPosts->the_post(); include SHOPPIIBIZ_TEMPLATE_PARTS_DIR."product/partials/product-item-has-li.php"; } wp_reset_query(); } $html = ob_get_clean(); ob_end_clean(); $results['html'] = $html; wp_send_json_success($results); } |
Các từ khóa tìm kiếm:
-Ajax wordpress cơ bản
-Sử dụng Ajax trong wordpress
-Simple WordPress Ajax Example
-How to call ajax in wordpress
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress