اختر لونك:
وَقُلِ اعْمَلُوا فَسَيَرَى اللَّهُ عَمَلَكُمْ وَرَسُولُهُ وَالْمُؤْمِنُونَ ۖ وَسَتُرَدُّونَ إِلَىٰ عَالِمِ الْغَيْبِ وَالشَّهَادَةِ فَيُنَبِّئُكُم بِمَا كُنتُمْ تَعْمَلُونَ [ التوبة : ( 105 )] كلمة الإدارة

يرجى إختيار القسم المناسب قبل النشر وسيعاقب المخالف بإنذار أول مرة وسيتم حظره إذا تكرر ذلك كلمة الإدارة

يُمنع كتابة مواضيع السحر والشعوذة والروحانيات والابراج بكافة الأشكال والمخالف سيعاقب بحظر مؤقت وإذا تكرر سيكون حظر دائم تنبيه هام جداً



أضف رد جديد
 
LinkBack أدوات الموضوع انواع عرض الموضوع

قديم 23-02-2019, 06:04 PM   #1
تاريخ التسجيل: Feb 2019
المشاركات: 1,010
التقييم: 10
تاريخ التسجيل: Feb 2019
المشاركات: 1,010
التقييم: 10
افتراضي كيف تضبط نقطة نهاية json في ووردبريس للوصول إلى واجهة برمجية خارجية

لتبسيط هذا الدرس (وجعله قصيرًا) فسنرسل ستة معاملات (وهو عدد كاف لواجهة Easy Post البرمجية لإعادة أجور الشحن):

عرض الطرد
ارتفاع الطرد
طول الطرد
وزن الطرد
كود Zip للمرسل
كود Zip للمستقبل
ضبط نقطة نهاية JSON
أوّل خطوة هي ضبط المسار الذي ستُخدَّم منه بيانات JSON، وفي هذه الحالة هو:

/wp-json/easy-post/v1/rates/
الشيفرة:

/**
* Sets up a json endpoint at /wp-json/easy-post/v1/rates/
*/
function easy_post_api_init() {
$namespace = 'easy-post/v1';
register_rest_route( $namespace, '/rates/', array(
'methods' => 'GET',
'callback' => 'easy_post_return_rates',
) );
}
add_action( 'rest_api_init', 'easy_post_api_init' );
عرض البيانات
تتوقع نقطة النهاية إرسال ست قيم من البيانات كطلبية، وستستخدمها للحصول على البيانات من الواجهة البرمجية الخارجية، فلو لم تكن تلك القيم موجودةً فستستعمل القيم الافتراضية، وسنحرص أن تكون تلك القيم رقميةً فقط.
مثال عن رابط URL مع قيم لكل المعاملات:

/wp-json/easy-post/v1/rates/?zip=78701&width=10&length=10&height=10&weight=10& shipping_zip=78751
الشيفرة:

/**
* عرض مخرجات Easy Post عبر النهاية الطرفية
*
* نستخدم القيم المبدئية في حال عدم ذكر بيانات في الطلب، إلا أن إعادة خطأ ربما تكون فكرة أفضل.
* Valid URL: /wp-json/easy-post/v1/rates/?zip=78701&width=10&length=10&height=10&weight=10& shipping_zip=78751
*/
function easy_post_return_rates( WP_REST_Request $request ) {
// الإعدادات المبدئية للشحن
$defaults = array(
'zip' => 78701,
'width' => 10,
'length' => 10,
'height' => 10,
'weight' => 16,
'shipping_zip' => 94105
);
// الحصول على المعطيات من الطلب
$params = $request->get_query_params();
// التأكد من توفر جميع المعطيات
$params = array_replace( $defaults, $params );
// تنظيف المفاتيح
$params = array_map( "absint", $params );
// إنشاء قيم مفاتيح فريدة لتحديد قيم البيانات المؤقتة transient أو العثور عليها
$key = 'easy_post_' . implode( "_", $params );
/**
* نحتفظ بالإجابة في قيمة مؤقتة transient ضمن قاعدة بيانات ووردبريس
* لتجنب إرسال الكثير من الطلبات في وقت قصير
*
* تنتهي صلاحية هذه البيانات بعد عشر دقائق
*/
if ( false === ( $data = get_transient( $key ) ) ) {
$data = easy_post_make_request( $params );
$response = new WP_REST_Response( $data );
// التخبئة لمدة عشر دقائق
set_transient( $key, $response, 60 * 10 );
} else {
// إرجاع القيمة المخبّأة
return get_transient( $key );
}
return $response;
}
الحصول على البيانات
الدالة easy_post_make_request()‎ هي الدالة التي تطلب البيانات من الواجهة البرمجية الخارجية، والغرض من أغلبية الشيفرات التي هنا هي تجهيز الطلبية ضمن مصفوفة يمكن لواجهة Easy Post البرمجية أن تعالجها:

/**
*العثور على البيانات من الواجهة البرمجية لـ Easy Post باستخدام الدالة wp_remote_post
*/
function easy_post_make_request( $params ) {
$to_address = array(
'zip' => $params['shipping_zip'],
'country' => 'US'
);
$from_address = array(
'zip' => $params['zip'],
'country' => 'US'
);
$parcel = array(
'length' => $params['length'],
'width' => $params['width'],
'height' => $params['height'],
'weight' => $params['weight']
);
$request = array(
'shipment' => array(
'to_address' => $to_address,
'from_address' => $from_address,
'parcel' => $parcel
)
);
$args = array(
'method' => 'POST',
'blocking' => true,
'headers' => array(
'Content-Type' => 'application/json'
),
'timeout' => 15,
'sslverify' => false,
'body' => json_encode( $request )
);
// ضع مفتاح API الخاص بك مكان EASYPOST_TEST_API_KEY
$api_url = 'https://' . EASYPOST_TEST_API_KEY . ':@api.easypost.com/v2/shipments';
$response = wp_remote_post( $api_url, $args );

if ( ! is_wp_error( $response ) ) {
$response = json_decode( $response['body'] );
}
return $response;
}
استخدام البيانات
عندما نحاول الوصول إلى نقطة النهاية التي أنشأناها، فإن بيانات json التي جلبناها من Easy Post ستظهر لنا:

1-json.gif


يمكنك الآن الحصول على أجور الشحن ديناميكيًا في موقعك باستخدام نقطة النهاية التي أنشأناها في هذا الدرس.

الفارس غير متواجد حالياً   اقتباس
قديم 27-07-2019, 10:52 AM   #2
الصورة الرمزية هديل الحرف
تاريخ التسجيل: Jul 2019
العمر: 30
المشاركات: 504
التقييم: 10
افتراضي

بارك الله فيك
إستمر ولك التوفيق بـإذن الله
تقديري وإحترامي
هديل الحرف غير متواجد حالياً   اقتباس
أضف رد جديد

الكلمات الدلالية (Tags)
منتديات رحيل, رحيل, شبكة رحيل, r7il, r7il.com


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
ما الذي تحتاج معرفته قبل الشروع في التطوير على ووردبريس مهرة النجدية قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 1 28-07-2019 11:12 AM
كيفية التسجيل في موقع feedburner raheel قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 01-04-2019 03:14 PM
تعرف علي أفضل إضافات ووردبريس لعام 2019 raheel قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 27-03-2019 10:08 PM
دليلك الشامل لتأمين موقع ووردبريس raheel قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 27-03-2019 06:58 PM
طريقة تساعدك علي نقل ووردبريس من خادم محلي إلى موقع حي raheel قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress 0 25-03-2019 06:01 PM


الساعة الآن 01:07 PM

 


Content Relevant URLs by vBSEO ©2010, Crawlability, Inc.