WPML Multilingual & Multicurrency עבור WooCommerce תואם ל־REST API של WordPress. באמצעות ה־REST API, כעת באפשרותך ליצור, לקרוא, לעדכן ולמחוק תוכן מתורגם של WooCommerce.
מסמך זה מיועד למפתחים שרוצים לנצל תכונות אלה ולהציע חוויית WooCommerce רב־לשונית בתוספים, באתרים וביישומים שלהם.
דרישות
כדי להשתמש ב־REST API עם WPML Multilingual & Multicurrency עבור WooCommerce תזדקק לדברים הבאים:
- WordPress 4.7+
- WooCommerce 3.9.0+
- WPML Multilingual & Multicurrency עבור WooCommerce 4.11.0+
- ספריית הלקוח WooCommerce REST PHP
- קישורים קבועים יפים (Pretty permalinks) מוגדרים בעמוד הגדרות → קישורים קבועים.
הגדרת ספריית הלקוח
כפי שצוין, תזדקק לספריית הלקוח WooCommerce REST PHP. ספרייה זו היא מעטפת PHP המאפשרת אינטראקציה עם ה־REST API של WooCommerce בדרך ישירה יותר. באפשרותך להשתמש גם בספריות לקוח אחרות.
הגדרת הספרייה בתוך היישום שלך כוללת מספר שלבים:
-
- הורד את קובצי הספרייה לשרת של האתר שלך באמצעות פקודת ה־Composer הבאה:
composer require automattic/woocommerce
-
- כלול את הקובץ לטעינה אוטומטית של הספרייה, autoload.php, בתחילת קוד ה־PHP שלך באמצעות הפונקציה require.
WCML REST API - הכללת קובץ לטעינה אוטומטית
require __DIR__ . '/vendor/autoload.php'; use Automattic\WooCommerce\Client; $woocommerce = new Client( 'http://example.com', 'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', [ 'wp_api' => true, 'version' => 'wc/v3', ] );
'ck_61f94473aab0445da506e095e664f5d65b153f45'; 'cs_7e60f84b6c87554d249b1ad797d6201566c1009e';
- הגדר את האפשרויות לשימוש בספרייה. תוכל למצוא את התיאור של כל האפשרויות בעמוד הרשמי.
שימוש ב־REST API
כעת, לאחר שהגדרת את הספרייה בקוד ה־PHP שלך, תוכל להתחיל לפתח פעולות שונות שהקוד שלך יבצע. הרשימה הבאה מציגה את כל הפעולות העיקריות שבאפשרותך לבצע באמצעות REST API ו־WPML Multilingual & Multicurrency עבור WooCommerce.
הצגת הזמנות
על ידי הוספת הפרמטר lang לבקשה, באפשרותך להחזיר את תוכן ההזמנות בשפות שצוינו. התנאי היחיד הוא שהמוצרים יתורגמו לשפה המתאימה. יישום אחד של זה הוא צפייה בהזמנות בשפת ברירת המחדל של האתר.
דוגמה: קבלת ההזמנות שבוצעו בצרפתית בלבד.
$orders = $woocommerce->get('orders', array( 'per_page' => 25, 'lang' => 'fr' ) );
התיעוד של WooCommerce בנושא: רשימת כל ההזמנות
הצגת הזמנה בודדת
על ידי אספקת פרמטר lang לבקשה, אם ההזמנה בוצעה בשפה שונה, כל הפריטים, אם הם קיימים, יוצגו כתרגומים בשפה שצוינה.
דוגמה: צפייה בתוכן של הזמנה מס' 110 באנגלית.
$order = $woocommerce->get('orders/110', array( 'lang' => 'en' ) );
התיעוד של WooCommerce בנושא: אחזור הזמנה
קבלת מוצרים
על ידי הוספת הפרמטר lang, באפשרותך לקבל מוצרים בשפה שצוינה. כדי לקבל את כל המוצרים בכל השפות, יש להגדיר את הפרמטר lang לערך all.
דוגמה: קבלת המוצרים בספרדית בלבד.
$products = $woocommerce->get('products', array( 'per_page' => 25, 'lang' => 'es' ) );
התיעוד של WooCommerce בנושא: רשימת כל המוצרים
הצגת מוצר בודד
הנתונים המוחזרים יכללו מידע על שפה ותרגום. בנוסף, אם מוגדרים מחירים מותאמים אישית במטבעות משניים ומצב ריבוי מטבעות מופעל ומוגדר, מחירים אלה ייכללו גם כן.
דוגמה:
$product = $woocommerce->get('products/99');
תוצאה של דוגמה זו תהיה דומה לבאה:
הצגת מוצר בודד
=> stdClass Object
(
[title] => An English product
[id] => 28
[created_at] => 2015-06-08T08:56:49Z
[updated_at] => 2015-06-08T08:56:49Z
[type] => simple
[status] => publish
[downloadable] =>
[virtual] =>
[permalink] => http://example.com/shop/a-simple-english-product
[sku] =>
[price] => 100.00
[regular_price] => 100.00
[sale_price] =>
[price_html] => $100.00
…
[variations] => Array
(
)
[parent] => Array
(
)
[translations] => stdClass Object
(
[bg] => 31
[es] => 30
)
[lang] => en
)התיעוד של WooCommerce בנושא: אחזור מוצר
קבלת מונחי טקסונומיה של מוצרים (קטגוריות מוצרים, תגיות, תכונות, קבוצות משלוח)
על ידי הוספת הפרמטר lang, באפשרותך לקבל מונח טקסונומיה של מוצר בשפה שצוינה. כדי לקבל את כל המונחים בכל השפות, יש להגדיר את הפרמטר lang לערך all.
דוגמה: קבלת קטגוריות בכל השפות.
$categories= $woocommerce->get('products/categories', array( 'per_page' => 10, 'lang' => 'all' ) );
התיעוד של WooCommerce בנושא: רשימת כל קטגוריות המוצרים
דוחות מכירות
על ידי הוספת הפרמטר currency, באפשרותך לקבל דוחות במטבע שצוין.
דוח מכירות
$query = [ 'period' => 'year', 'currency' => 'EUR' ]; $woocommerce->get( 'reports/sales', $query );
התיעוד של WooCommerce בנושא: אחזור דוח מכירות
דוחות מוצרים נמכרים ביותר
על ידי הוספת הפרמטר lang, באפשרותך לקבל דוחות בשפה שצוינה.
מוצרים נמכרים ביותר
$query = [ 'lang' => 'fr' ]; $woocommerce->get( 'reports/top_sellers', $query );
התיעוד של WooCommerce בנושא: אחזור דוח מוצרים נמכרים ביותר
דוחות סיכומי מוצרים
על ידי הוספת הפרמטר lang, באפשרותך לקבל דוחות בשפה שצוינה.
סיכומי מוצרים
$query = [ 'lang' => 'fr' ]; $woocommerce->get( 'reports/products/totals', $query );
התיעוד של WooCommerce בנושא: אחזור סיכומי מוצרים
יצירת מוצרים
שלושה פרמטרים נתמכים בעת יצירת מוצר:
- lang – הערך המתאים של lang יוגדר עבור המוצר. אם יושמט, ייעשה שימוש בשפת ברירת המחדל של האתר.
- translation_of (אופציונלי) – המוצר ייווצר כתרגום של מוצר קיים, בעל המזהה (ID) שסופק על ידי הערך של translation_of. אם translation_of יושמט, המוצר ייווצר כחלק מקבוצת תרגום חדשה (trid).
- custom_prices – מאפשר הגדרת מחירים מותאמים אישית במטבעות משניים.
דוגמה:
יצירת מוצרים
$data = [ 'name' => 'English Test Post', 'type' => 'simple', 'regular_price' => '10.00', 'description' => 'This is a Simple English Test Post', 'short_description' => 'This is a Simple English Test Post', 'categories' => [ [ 'id' => 10 ], [ 'id' => 12 ] ], 'images' => [ [ 'src' => 'https://example.com/image-1.png', 'position' => 0 ], [ 'src' => 'https://example.com/image-2.png', 'position' => 1 ] ], 'lang' => 'en', 'custom_prices' => [ 'EUR' => [ 'regular_price' => 1999, 'sale_price' => 1500 ], 'USD' => [ 'regular_price' => 2100, 'sale_price' => 2099 ] ] ]; $product = $woocommerce->post( 'products', $data );
כדי להוסיף מוצר כתרגום של פוסט אחר, עליך להעביר את הפרמטר translation_of. אם הפוסט שנוצר בקריאה הקודמת הוא בעל מזהה (ID) 23, להלן הקוד להוספת תרגום:
יצירת מוצר כתרגום של מוצר אחר
$data = [
'name' => 'French Test Post',
'type' => 'simple',
'regular_price' => '10.00',
'description' => 'This is a Simple French Test Post',
'short_description' => 'This is a Simple French Test Post',
'lang' => 'fr',
'translation_of' => '23'
];
$product = $woocommerce->post('products', $data);שים לב שאם הקטגוריות כבר מתורגמות, אינך צריך לציין אותן במפורש בעת הוספת התרגום אם האפשרות העתק טקסונומיה לתרגומים מוגדרת ב־WPML. הן יתווספו אוטומטית.
התיעוד של WooCommerce בנושא: יצירת מוצר
מוצרים עם וריאציות
יצירת וריאציות מוצר עם תכונה מקומית
שלושה פרמטרים נתמכים בעת יצירת וריאציית מוצר:
- lang – הערך המתאים של lang יוגדר עבור וריאציית המוצר. אם יושמט, ייעשה שימוש בשפת ברירת המחדל של האתר.
- translation_of (אופציונלי) – וריאציית המוצר תיווצר כתרגום של וריאציית מוצר קיימת, בעלת המזהה (ID) שסופק על ידי הערך של translation_of. אם translation_of יושמט, וריאציית המוצר תיווצר כחלק מקבוצת תרגום חדשה (trid).
- custom_prices – מאפשר הגדרת מחירים מותאמים אישית במטבעות משניים.
דוגמה:
יצירת וריאציה
$data = [ 'lang' => 'en',
'regular_price' => '10',
'attributes' => [ [ 'name' => $local_attribute_name, 'option' => 'red' ] ]
];
$woocommerce->post( 'products/{$variable_product_id}/variations', $data );כדי להוסיף וריאציית מוצר כתרגום של פוסט אחר, עליך להעביר את הפרמטר translation_of. אם הפוסט שנוצר בקריאה הקודמת הוא בעל מזהה (ID) 25, להלן הקוד להוספת תרגום:
תרגום וריאציה
$data = [
'name' => 'Translation of Variable Product',
'type' => 'variable',
'description' => 'Translate of Product Description',
'lang' => 'fr',
'translation_of' => 25,
'attributes' => [
[
'name' => $local_attribute_name,
'visible' => true,
'variation' => true,
'options' => [
'$translation_of_red'
]
]
]
];
$woocommerce->post('products', $data);התיעוד של WooCommerce בנושא: יצירת וריאציית מוצר
יצירת וריאציות מוצר עם תכונה גלובלית
ראשית, עליך ליצור ולתרגם את המונחים הגלובליים. לאחר מכן, תוכל ליצור את המוצר עם הווריאציות על ידי ביצוע הדוגמה שלהלן:
יצירת מוצר עם וריאציות
$data = [
'name' => 'Test Variable Product',
'type' => 'variable',
'description' => 'Test Variable Product for REST',
'lang' => 'en',
'translation_of' => null,
'attributes' => [
[
'id' => $global_attribute_id,
'visible' => true,
'variation' => true,
'options' => [
'Red'
]
]
]
];
$woocommerce->post('products', $data);לאחר מכן עלינו ליצור וריאציות מוצר. אם המוצר המקורי הוא בעל מזהה (ID) 25, להלן דוגמה לקוד:
יצירת וריאציות מוצר
$data = [ 'create' => [ [ 'lang' => 'en', 'translation_of' => null, 'regular_price' => '10', 'attributes' => [ [ 'id' => $global_attribute_id, 'option' => 'blue-en' //we need to add here the attribute term slug ] ] ] $woocommerce->post( 'products/25/variations/batch', $data );
כעת המוצרים עם הווריאציות נוצרו באנגלית. כדי לתרגם אותם, פעל לפי הדוגמה שלהלן:
יצירת תרגום של מוצר עם וריאציות
$data = [
'name' => 'FR Test Variable Product',
'type' => 'variable',
'description' => 'FR Test Variable Product for REST',
'lang' => 'fr',
'translation_of' => 25,
'attributes' => [
[
'id' => $global_attribute_id,
'visible' => true,
'variation' => true,
'options' => [
'red-fr' //slug of the attribute term translation
]
]
]
];
$woocommerce->post('products', $data);התיעוד של WooCommerce בנושא: עדכון קבוצתי של וריאציות מוצר
יצירת הזמנה
הוספת פרמטר lang תגדיר את השפה שצוינה עבור ההזמנה שצוינה.
שים לב שהמוצרים, אם התווספו בשפה שונה מזו שסופקה כארגומנט כאן, לא יומרו אוטומטית אלא יתווספו בשפה שלהם.
דוגמה:
יצירת הזמנה
$data = [
'payment_details' => [
'method_id' => 'bacs',
'method_title' => 'Direct Bank Transfer',
'paid' => true
],
'billing_address' => [
'first_name' => 'John',
'last_name' => 'Doe',
'address_1' => '969 Market',
'address_2' => '',
'city' => 'San Francisco',
'state' => 'CA',
'postcode' => '94103',
'country' => 'US',
'email' => 'john.doe@example.com',
'phone' => '(555) 555-5555'
],
'shipping_address' => [
'first_name' => 'John',
'last_name' => 'Doe',
'address_1' => '969 Market',
'address_2' => '',
'city' => 'San Francisco',
'state' => 'CA',
'postcode' => '94103',
'country' => 'US'
],
'customer_id' => 2,
'line_items' => [
[
'product_id' => 58,
'quantity' => 2
],
],
'shipping_lines' => [
[
'method_id' => 'flat_rate',
'method_title' => 'Flat Rate',
'total' => 10
]
],
'lang' => 'el'
'currency' => 'usd'
];
$order = $woocommerce->post('orders', $data );התיעוד של WooCommerce בנושא: יצירת הזמנה
יצירת מונחי טקסונומיה (קטגוריית מוצרים, תגית, תכונה, קבוצת משלוח)
שני פרמטרים נתמכים בעת יצירת מונח:
- lang – הערך המתאים של lang יוגדר עבור המונח. אם יושמט, ייעשה שימוש בשפת ברירת המחדל של האתר.
- translation_of (אופציונלי) – המונח ייווצר כתרגום של מונח קיים, בעל המזהה (ID) שסופק על ידי הערך של translation_of. אם translation_of יושמט, המונח ייווצר כחלק מקבוצת תרגום חדשה (trid)
דוגמה: יצירת קטגוריה בשפה השנייה.
יצירת קטגוריה
$category = [ 'name' => 'Product Category ES', 'translation_of' => $original_category_id, 'lang' => 'es' ]; $woocommerce->post( 'products/categories', $product_category );
התיעוד של WooCommerce בנושא: יצירת קטגוריית מוצרים
דוגמה: תרגום מונח תכונה גלובלית בשפה המשנית
תרגום מונח תכונה גלובלית
$attribute_term = [ 'name' => 'Black ES', 'translation_of' => $original_attribute_term_id, 'lang' => 'es' ];
$woocommerce->post( 'products/attributes/{$attribute_id}/terms', $attribute_term );התיעוד של WooCommerce בנושא: יצירת מונח תכונה