সাইলেক্স সার্ভারের সাথে আপনি যা করতে পারেন তা খুব কমই আছে যা ওয়ার্ডপ্রেসের মাধ্যমে করা যায় না তবে ডাব্লুপিএজকে আজেএক্সের কলগুলিতে সাড়া দেওয়ার জন্য কিছুটা প্রচেষ্টা দরকার।
প্রথম পদক্ষেপটি AJAX এর মাধ্যমে কলটি উপলব্ধ করা। এর জন্য আপনার ফাংশনগুলির সাথে একটি লাইন যুক্ত করা দরকার ph
add_action('wp_ajax_my_ajax_call', 'onno_update_my_ajax_call');
যদি এই কলটি অতিথি এবং গ্রাহকদের জন্য করা হবে (যেমন অ্যাডমিন নয়), আপনারও লাইনটি দরকার হবে।
add_action('wp_ajax_nopriv_my_ajax_call', 'my_ajax_call');
যা একই জিনিস করে তবে আরও বেশি অন্তর্ভুক্ত।
পরবর্তী পদক্ষেপটি এজাক্স কলগুলি তৈরি করা। আপনি এই জাতীয় কলটির উদাহরণ দেবেন না তাই আমি যা করতে পারি তা হ'ল $ wpdb এর জন্য ডক্সটি দেখার পরামর্শ । ডাটাবেস থেকে তথ্য পুনরুদ্ধার করার জন্য এবং জটিল প্রশ্নের জন্য ডাব্লুপি-র কলগুলির একটি বিস্তৃত সেট রয়েছে, আপনি সর্বদা $ wpdb-> ক্যোয়ারী () ব্যবহার করতে পারেন যা আপনার জন্য নির্বিচারে এসকিউএল চালাবে।
AJAX যুক্তি my_ajax_call () ফাংশনে যায় এবং ফলাফলটি একটি অ্যারে বা অবজেক্টে স্থাপন করা উচিত। আপনার ফাংশনটির চূড়ান্ত লাইনটি ডাব্লুপি_সেন্ড_জসন_সুসেসে ($ রিটার্ন) কল করা উচিত যেখানে $ রিটার্নটি প্রত্যাবর্তনের জন্য অবজেক্ট / অ্যারের তথ্য।
এই সিস্টেমটি ব্যবহার করে, আমি ডাব্লুপি_এডমিন বিভাগে পৃষ্ঠাগুলি যুক্ত করতে সক্ষম হয়েছি যাতে দোকান মালিকদের ডাব্লুউকমার্স ডেটা থেকে পুনরায় বন্ধ করার জন্য ক্রয়ের আদেশ তৈরি করতে এবং পার্শ্ব-লোড গ্যালারী পরিবর্তনের জন্য (উও কেবল পিতামাতার জন্য একটি গ্যালারী অনুমতি দেয়)।
এখানে একটি দ্রুত উদাহরণ:
function my_ajax_call() {
$return['data'] = date('Y-m-d');
wp_send_json_success($return);
wp_die();
}
এবং তারপরে জাভাস্ক্রিপ্টে আরও পদক্ষেপগুলি প্রয়োজনীয়। একটি জিনিসের জন্য, আপনার ডাব্লুপি আজাক্স ইউআরএল প্রয়োজন হবে যা সাধারণত /wp-admin/admin-ajax.php
তবে কিছুটা পরিবর্তিত হতে পারে। এটি প্রায়শই জাভাস্ক্রিপ্টকে বৈশ্বিক আজাকুরল হিসাবে উপলব্ধ করা হয় বা অন্য কোনও বস্তুর মতো টোকা দেওয়া হতে পারে woocommerce.ajaxurl
। আপনাকে জাভাস্ক্রিপ্ট অবজেক্টটি এমন একটি অ্যাকশন উপাদান দিয়ে তৈরি করতে হবে যা আপনার ফাংশনটিকে নির্দেশ করে এবং অন্য কোনও ভেরিয়েবলগুলি আপনাকে এজ্যাক্স কলটিতে যেতে পারে। উদাহরণ স্বরূপ:
data = {'action':'my_ajax_call'}
অথবা
data = {'action':'my_ajax_call', 'todo':'getDate'}
(function($){
$.ajax{
url:ajaxurl,
data: data,
success: function(trn) {$('#data').html(trn.data)}
})(jQuery)
আছে HTH