افزودن یک فیلد سفارشی برای محصولات در صفحه محصول 📝

add custom field to product page woocommerce
20 آبان 1403

با این کد، می‌توانید یک فیلد سفارشی به صفحه محصول در ووکامرس اضافه کنید. این فیلد می‌تواند برای جمع‌آوری اطلاعات اضافی از مشتریان مثل پیام‌های شخصی، نظرات خاص یا حتی ویژگی‌های سفارشی دیگر استفاده بشه.

برای اضافه کردن فیلد سفارشی به صفحه محصول، کد زیر رو در فایل functions.php قالب خود قرار بدید:

// اضافه کردن فیلد سفارشی به صفحه محصول
add_action( 'woocommerce_before_add_to_cart_button', 'add_custom_field_to_product_page' );
function add_custom_field_to_product_page() {
    echo '<label for="custom_message">پیام سفارشی:</label>';
    echo '<input type="text" id="custom_message" name="custom_message" value="" />';
}

// ذخیره فیلد سفارشی در سبد خرید
add_filter( 'woocommerce_add_cart_item_data', 'save_custom_field_to_cart', 10, 3 );
function save_custom_field_to_cart( $cart_item_data, $product_id, $variation_id ) {
    if ( isset( $_POST['custom_message'] ) ) {
        $cart_item_data['custom_message'] = sanitize_text_field( $_POST['custom_message'] );
    }
    return $cart_item_data;
}

// نمایش فیلد سفارشی در سبد خرید
add_filter( 'woocommerce_get_item_data', 'display_custom_field_in_cart', 10, 2 );
function display_custom_field_in_cart( $item_data, $cart_item ) {
    if ( isset( $cart_item['custom_message'] ) ) {
        $item_data[] = array(
            'name' => 'پیام سفارشی',
            'value' => $cart_item['custom_message']
        );
    }
    return $item_data;
}

🔵 توضیحات کد:

add_action( 'woocommerce_before_add_to_cart_button', 'add_custom_field_to_product_page' );:

این خط کد فیلد سفارشی را قبل از دکمه افزودن به سبد خرید در صفحه محصول نمایش می‌دهد.

add_filter( 'woocommerce_add_cart_item_data', 'save_custom_field_to_cart', 10, 3 );:

این خط داده‌های وارد شده در فیلد سفارشی را در سبد خرید ذخیره می‌کند.

add_filter( 'woocommerce_get_item_data', 'display_custom_field_in_cart', 10, 2 );:

این خط داده‌های فیلد سفارشی را در سبد خرید و هنگام نمایش محتویات سبد خرید نمایش می‌دهد.

سوالات متداول