איך להוסיף שדה URL למוצרים ספציפיים ב-WoCommerce ולהציג שדה זה בדף התשלום של וורדפרס ובהזמנה
שלב 1: הגדר מוצרים ספציפיים
ראשית, הגדירו את המוצרים הספציפיים לפי המזהים שלהם. יהיה עליך להחליף את המזהים לדוגמה במזהים האמיתיים של המוצרים שלך.
function has_specific_products_in_cart() {
$specific_product_ids = [123, 456, 789]; // Replace with your actual product IDs
foreach (WC()->cart->get_cart_contents() as $item) {
if (in_array($item['product_id'], $specific_product_ids)) {
return true;
}
}
return false;
}
שלב 2: הוסף שדה מותאם אישית לקופה כדי שמשתמשים יוכלו למלות אותו
הוסף את שדה כתובת האתר המותאמת אישית לדף התשלום אם אחד מהמוצרים הספציפיים נמצא בעגלה.
add_action('woocommerce_after_order_notes', 'add_custom_url_field_to_checkout');
function add_custom_url_field_to_checkout($checkout) {
if (has_specific_products_in_cart()) {
echo '<div id="custom_url_field"><h2>' . __('Your Custom URL') . '</h2>';
woocommerce_form_field('custom_product_url', array(
'type' => 'url',
'class' => array('form-row-wide'),
'label' => __('Product URL'),
'placeholder' => __('Enter URL related to the product'),
'required' => true,
), $checkout->get_value('custom_product_url'));
echo '</div>';
}
}
שלב 3: אימות שדה מותאם אישית
לחלופין, תוכלו להוסיף אימות עבור השדה כתובת האתר המותאמת אישית.
add_action('woocommerce_checkout_process', 'validate_custom_url_field');
function validate_custom_url_field() {
if (has_specific_products_in_cart() && empty($_POST['custom_product_url'])) {
wc_add_notice(__('Please enter a URL for the product.'), 'error');
}
}
שלב 4: שמור ערך שדה מותאם אישית
שמור את ערך השדה המותאם אישית עם ההזמנה.
add_action('woocommerce_checkout_update_order_meta', 'save_custom_url_field_value');
function save_custom_url_field_value($order_id) {
if (!empty($_POST['custom_product_url'])) {
update_post_meta($order_id, 'Custom Product URL', sanitize_url($_POST['custom_product_url']));
}
}
שלב 5: הצג את השדה \custom field באזור ניהול ההזמנות במנהל
הצג את השדה שיצרנו בשם כתובת האתר המותאמת אישית בתיבת המטא של פאנל הניהול בממשק מנהל.
add_action('woocommerce_admin_order_data_after_billing_address', 'display_custom_url_in_admin_order_meta', 10, 1);
function display_custom_url_in_admin_order_meta($order) {
$custom_url = get_post_meta($order->get_id(), 'Custom Product URL', true);
if (!empty($custom_url)) {
echo '<p><strong>' . __('Custom Product URL') . ':</strong> <a href="' . esc_url($custom_url) . '" target="_blank">' . esc_url($custom_url) . '</a></p>';
}
}
שלבים אחרונים
- הוסף את כל קטעי הקוד האלה לקובץ שלך
functions.php
או בתוסף מותאם אישית. - החלף את מזהי המוצר של מצייני המיקום (
123, 456, 789
) במזהים בפועל של המוצרים שאליהם ברצונך למקד. - הוסף את השדה המותאם אישית למוצרים שברצונך להציג אותו בקופה – ערך השדה המותאם אישית המשמש כאן הוא custom_url, עבור השם ניתן לשים מה שבא לכם אני שמתי אותו הדבר גם בערך וגם בשם לנוחיות.
- בדוק את הפונקציונליות ביסודיות כדי לוודא שהיא פועלת כהלכה ומשתלבת בצורה חלקה עם תהליך התשלום שלך.