در یک پروژه اخیر، از من خواسته شد تا نظرات سفارش WooCommerce را مورد نیاز قرار دهم، زیرا ما از یک افزونه پرداخت سریع PayPal استفاده میکردیم که برای تکمیل جزئیات ارسال از PayPal سفارشی شده بود.
از من خواسته شد که یک فیلد سفارشی جدید به همراه قسمت order_comments اضافه کنم تا به کاربران اجازه دهد عنوان رویداد را اضافه کنند و از نظر سفارش به عنوان توضیحات رویداد استفاده کنند.
فیلد ووکامرس سفارشی ایجاد کنید
برای اضافه کردن یک فیلد عنوان سفارشی اضافی، من به سرعت یک فیلد ووکامرس را با استفاده از کد زیر اضافه کردم:
<h3><?php _e( 'Add Events Details', 'text-domain' ); ?></h3> <?php woocommerce_form_field( 'event_details', array( 'type' => 'text', 'required' => true, 'label' => 'Event Title', 'description' => 'Please enter your Event Title', ), $checkout->get_value( 'event_details' ) ); } ?>
ایجاد فیلد نظرات سفارش
پس از افزودن فیلد عنوان سفارشی، باید نظر سفارش را اضافه کنیم که در تأیید سفارش در افزونه پرداخت PayPal موجود نیست. کد زیر برای اضافه کردن order_comment یا order_notes است:
<?php if ( version_compare( WC_VERSION, '3.0', '<' ) ) { $fields = WC()->checkout->checkout_fields['billing']; } else { $fields = WC()->checkout->get_checkout_fields( 'billing' ); } woocommerce_form_field( 'order_comments', $fields['order_comments'], WC()->checkout->get_value( 'order_comments') );
ثبت سفارش ووکامرس نظرات الزامی است.
پس از ایجاد نظرات سفارش، ممکن است بخواهید آن را مورد نیاز قرار دهید تا کاربران قبل از ثبت سفارش، متنی را اضافه کنند.
در این حالت، شما از یک قلاب اعتبارسنجی ووکامرس استفاده میکنید که بررسی میکند آیا نظرات سفارش یا یادداشتهای سفارش خالی هستند یا نه، کاربر میتواند اقدام به ثبت سفارش کند.
برای اینکه این قسمت نظرات سفارش در ووکامرس مورد نیاز باشد، باید کد زیر را به فایل functions.php موضوع فعال خود اضافه کنید:
/** * Code Snippet should be added to the functions.php to make WooCommerce order comments required */ add_action('woocommerce_after_checkout_validation', 'njengah_make_woocommerce_order_comments_required'); function njengah_make_woocommerce_order_comments_required() { // Check if set, if its not set add an error. if ( ! $_POST['order_comments'] ) wc_add_notice( __( 'Please add delivery instructions' ), 'error' ); }
روش جایگزین برای سفارش ووکامرس نظرات مورد نیاز است
اگر نمی خواهید از کد اضافه شده به functions.php استفاده کنید، می توانید از کنترل رفتار فیلدهای پرداخت ووکامرس استفاده کنید. این افزونه رایگان Checkout Field Editor (Checkout Manager) برای ووکامرس می تواند در سفارشی کردن فیلدهای پرداخت ووکامرس مفید باشد.