איך להוסיף שדה 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, עבור השם ניתן לשים מה שבא לכם אני שמתי אותו הדבר גם בערך וגם בשם לנוחיות.
Pablo Guides - איך להוסיף שדה URL למוצרים ספציפיים ב-WoCommerce ולהציג שדה זה בדף התשלום של וורדפרס ובהזמנה
  • בדוק את הפונקציונליות ביסודיות כדי לוודא שהיא פועלת כהלכה ומשתלבת בצורה חלקה עם תהליך התשלום שלך.