Bài viết về Cách gọi sử dụng RESTful API Caresoft trong wordpress chi tiết cách cài đặt vào trong wordpress để truyền dữ liệu vào API của bên phần mềm Caresoft bằng Comment, Contact Form 7, Font liên hệ đặt hàng,... tất tần tật chỉ cần xem ví dụ và cách làm có thể làm được tất cả nhé. Ví dụ dưới đây mình hướng dẫn lấy dữ liệu từ Contact Form 7. Thông tin đặt hàng của khách hàng, truyền tới API của phần mềm Caresoft. Lấy ở dữ liệu của bất kỳ form nhập liệu nào tương tự. Bước 1: Đầu tiên các bạn phải đọc tài liệu của bên cung cấp dịch vụ API trước link ở dưới: https://drive.google.com/file/d/1qypYqFtdT7uFodM_R64hbU98U4ztnJIC/view Bước 2: Mình sử dụng thư viện RestClient để gọi API nên các bạn tải thư viện ở 2 trong 2 link dưới về. https://github.com/tcdent/php-restclient Hoặc: https://itseovn.com/i/file/restclient.zip Tải về xong, giải nén ra, copy file restclient.php cho vào themes của web: wp-content/themes/Tên-Themes/includes/restclient.zip. Bước 3: Tạo file itseovnajax.js để lắng nghe thao tác từ người dùng để gọi Ajax xử lý API. Và copy nội dung sau bỏ vào: Hoặc tải file trược tiếp tại đây: https://itseovn.com/file/i/itseovnajax.zip HTML: (function ($) { $(document).ready(function () { //Box đặt hàng tìm tới mở cái error xem có bị lỗi gì phát sinh không? //đặt hàng // wpcf7-id-ctf7 : id của form nhập liệu của Contact Form 7, wpcf7-submit: là nút đặt mua ngay, submit ok, đồng ý //Lăng nghe sự kiện submit/click của người dùng, lấy thông tin người dùng nhập gửi vào Ajax truyền tới hàm PHP xử lý API $('[id*="wpcf7-id-ctf7"] .wpcf7-submit').on('click', function () { var name = $("input[name=your-name]").val(); var email = $("input[name=your-email]").val(); var phone = $("input[name=your-phone]").val(); var comment = "Số lượng: "; comment = comment + $("input[name=your-number]").val() + " "; comment = comment + "Địa chỉ: " + $("input[name=your-address]").val(); jQuery.post( ajax_obj.ajax_url, { 'action': 'PUT_ORDER_Call_Center', 'email' : email, 'phone' : phone, 'name' : name, 'comment' : comment, nonce : ajax_obj.smart_nonce }, function (response) { var data = jQuery.parseJSON(response); if(data.code == "ok"){ alert("Yêu cầu đặt hàng của bạn đã gửi thành công."); $('[id*=wpcf7-id-ctf7"] .wpcf7-form')[0].reset(); } } ); }); }); }) (jQuery); Bước 4: Truy cập vào Function.php của themes chèn code sau xử lý lệnh PHP gọi API truyền dữ liệu tới API PHP: //API: gọi javascrip nhận file javascript thực hiện chờ đợi dữ liệu từ người dùng truyền vào fileadd_action('after_setup_theme', 'itseovn_theme_setup');if ( ! function_exists( 'itseovn_theme_setup' ) ){ function itseovn_theme_setup(){ add_action( 'wp_enqueue_scripts', 'itseovn_ajax_script'); }}function itseovn_ajax_script() { wp_enqueue_script('itseovn_ajax', get_template_directory_uri() . '/js/itseovnajax.js', array(), '1.0.0', true ); wp_localize_script( 'itseovn_ajax', 'ajax_obj', array( 'ajax_url' => admin_url( 'admin-ajax.php' ), 'smart_nonce' => wp_create_nonce( 'itseovnajax-nonce' ) ) );}///API: Nhận lệnh truyền về từ file /js/itseovnajax.js trả về/// wp_ajax_ và wp_ajax_nopriv_ khai báo gọi ajax của wordpressadd_action('wp_ajax_PUT_ORDER_Call_Center', 'PUT_ORDER_Call_Center');add_action('wp_ajax_nopriv_PUT_ORDER_Call_Center', 'PUT_ORDER_Call_Center');function PUT_ORDER_Call_Center(){ //kiển tra xem $nonce = $_POST['nonce']; if ( ! wp_verify_nonce( $nonce, 'itseovnajax-nonce' ) ){ echo '{ "code" : "errors"}'; die (); } //Thông tin api từ bên nha cung cấp cho bạn //apiitseovn.com: là tên user đăng nhập tại CARESOFT, mục Amin -> Dịch Vụ -> API để tạo mới (hoặc xem hình dưới) try{ $api = new RestClient([ 'base_url' => "https://api.caresoft.vn/apiitseovn.com/api/v1/", 'headers' => ['Authorization' => 'Bearer gTuqYsnZNIELrPw', 'Content-Type' => 'application/json'] ]); } catch(Exception $ex) { echo '{ "code" : "'. $ex->getMessage() .'"}'; die (); } //Xem tài liệu CARESOFT tại đây: https://drive.google.com/file/d/1qypYqFtdT7uFodM_R64hbU98U4ztnJIC/view //Lấy các tham số từ Ajax truyền về, gán vào các biến truyền đi tới API $cus_name = $_POST['name']; $cus_email = isset($_POST['email']) ? $_POST['email'] : ''; $cus_phone = $_POST['phone']; $cus_comment = $_POST['comment']; //Truyền dữ liệu vào các biến của API (tùy vào nhà cung cấp API mà có các biến khác nhau, đọc tài liệu nhà cung cấp đưa để biết rõ) $tickets = array('ticket' => array( 'ticket_subject' => 'Đặt hàng từ Nacurgo Gel (nacurgogel.com)', 'ticket_comment' => $cus_comment, 'ticket_source' => 'Web', //'assignee_id' => 1234, //ID của USER 'group_id' => 6792, //Nhóm, đổi thành nhóm của bạn 'email' => $cus_email, 'phone' => $cus_phone, 'username' => $cus_name )); //Gửi ticket lên service try { $result = $api->post("tickets",$tickets); //truyền dạng tickets, còn dạng khác giống vậy, đọc tài liệu bên nhà cung cấp dịch vụ API để biết thêm //Kiểm tra kết quả trả về từ API if($result->info->http_code == 200){ //Service trả về dạng chuỗi json echo json_encode($result->decode_response()); } else { echo json_encode($result->decode_response()); } } catch(Exception $ex) { echo '{ "code" : "'. $ex->getMessage() .'"}'; } die ();}require('includes/restclient.php'); //include thư viện gọi api của restclient Như vậy là xong rồi, giờ hãy test dữ liệu xem đã vào chưa nhé.
Cách 2: sử dụng phần mềm Postman để test và tải code về add vào web ở bước 4 bên trên, áp dụng cho mọi ngôn ngữ mà các developer chuyên nghiệp thường sử dụng. Tải phần mềm về tại đây: https://www.postman.com/downloads/ Code test phần mềm Caresoftcho trường tickets. HTML: { "ticket": { "ticket_subject": "Test API caresoft", "ticket_comment": "Khách hàng liên hệ tại nacugol... nội dung", "email": "phamcongson2003@gmail.com", "phone": "0973002201", "service_id": "95035783", "group_id": 6792, "username": "Sơn test API", "ticket_priority": "urgent" } }