1.ویرایش فیلدهای ووکامرس با استفاده از کد (PHP)
برای ویرایش فیلدهای ووکامرس، باید از فیلتر woocommerce_checkout_fields
استفاده کنید. این فیلتر به شما امکان میدهد فیلدهای موجود را حذف، اضافه یا ویرایش کنید. برای انجام این کار باید فایل functions.php
قالب خود را ویرایش کنید. لطفاً قبل از انجام این کار، از سایت خود یک نسخه پشتیبان تهیه کنید.
افزودن فیلد جدید به صفحه تسویهحساب
میتوانید فیلد جدیدی به صفحه تسویهحساب اضافه کنید. مثال زیر یک فیلد متنی جدید اضافه میکند:
add_filter('woocommerce_checkout_fields', 'custom_add_checkout_field');
function custom_add_checkout_field($fields) {
$fields['billing']['billing_custom_field'] = array(
'type' => 'text',
'label' => __('Custom Field', 'textdomain'),
'placeholder' => __('Enter custom value', 'textdomain'),
'required' => true,
'class' => array('form-row-wide'),
'priority' => 25,
);
return $fields;
}
حذف فیلدهای موجود
برای حذف یک یا چند فیلد از بخش تسویهحساب، از کد زیر استفاده کنید. این مثال نحوه حذف فیلدهای مختلف را نشان میدهد:
حذف فیلدهای بخش Billing (صورتحساب):
add_filter('woocommerce_checkout_fields', 'remove_billing_fields');
function remove_billing_fields($fields) {
unset($fields['billing']['billing_first_name']); // حذف نام
unset($fields['billing']['billing_last_name']); // حذف نام خانوادگی
unset($fields['billing']['billing_company']); // حذف شرکت
unset($fields['billing']['billing_address_1']); // حذف آدرس ۱
unset($fields['billing']['billing_address_2']); // حذف آدرس ۲
unset($fields['billing']['billing_city']); // حذف شهر
unset($fields['billing']['billing_state']); // حذف استان
unset($fields['billing']['billing_postcode']); // حذف کد پستی
unset($fields['billing']['billing_country']); // حذف کشور
unset($fields['billing']['billing_phone']); // حذف شماره تماس
unset($fields['billing']['billing_email']); // حذف ایمیل
return $fields;
}
حذف فیلدهای بخش Shipping (حملونقل):
add_filter('woocommerce_checkout_fields', 'remove_shipping_fields');
function remove_shipping_fields($fields) {
unset($fields['shipping']['shipping_first_name']); // حذف نام
unset($fields['shipping']['shipping_last_name']); // حذف نام خانوادگی
unset($fields['shipping']['shipping_company']); // حذف شرکت
unset($fields['shipping']['shipping_address_1']); // حذف آدرس ۱
unset($fields['shipping']['shipping_address_2']); // حذف آدرس ۲
unset($fields['shipping']['shipping_city']); // حذف شهر
unset($fields['shipping']['shipping_state']); // حذف استان
unset($fields['shipping']['shipping_postcode']); // حذف کد پستی
unset($fields['shipping']['shipping_country']); // حذف کشور
return $fields;
}
حذف فیلدهای بخش Order (سفارش):
add_filter('woocommerce_checkout_fields', 'remove_order_fields');
function remove_order_fields($fields) {
unset($fields['order']['order_comments']); // حذف یادداشت سفارش
return $fields;
}
حذف تمام فیلدهای یک بخش (مثلاً Billing):
add_filter('woocommerce_checkout_fields', 'remove_all_billing_fields');
function remove_all_billing_fields($fields) {
unset($fields['billing']); // حذف کل بخش صورتحساب
return $fields;
}
ویرایش فیلدهای موجود
برای تغییر برچسب، ویژگیها یا مقادیر پیشفرض فیلدهای موجود:
add_filter('woocommerce_checkout_fields', 'custom_modify_checkout_field');
function custom_modify_checkout_field($fields) {
$fields['billing']['billing_phone']['label'] = __('Your Phone Number', 'textdomain'); // تغییر برچسب فیلد
$fields['billing']['billing_phone']['required'] = false; // غیرالزامی کردن
return $fields;
}
ذخیرهسازی فیلدهای سفارشی
برای ذخیره اطلاعات واردشده در فیلدهای سفارشی در سفارشات:
add_action('woocommerce_checkout_update_order_meta', 'custom_save_checkout_field');
function custom_save_checkout_field($order_id) {
if (!empty($_POST['billing_custom_field'])) {
update_post_meta($order_id, 'billing_custom_field', sanitize_text_field($_POST['billing_custom_field']));
}
}
نمایش فیلدهای سفارشی در پنل مدیریت
برای نمایش فیلدهای سفارشی در بخش مدیریت سفارشات:
add_action('woocommerce_admin_order_data_after_billing_address', 'custom_display_admin_order_meta', 10, 1);
function custom_display_admin_order_meta($order) {
echo '<p><strong>' . __('Custom Field', 'textdomain') . ':</strong> ' . get_post_meta($order->get_id(), 'billing_custom_field', true) . '</p>';
}
2. ویرایش فیلدهای ووکامرس با استفاده از پلاگین
اگر به دانش کدنویسی تسلط ندارید یا نیاز به راهکار سادهتری دارید، میتوانید از پلاگینهای آماده وردپرس استفاده کنید. یکی از بهترین پلاگینها برای این منظور WooCommerce Checkout Field Editor است.
مراحل استفاده از پلاگین:
- وارد پیشخوان وردپرس شوید و به بخش افزونهها > افزودن بروید.
- عبارت Checkout Field Editor را جستجو کنید.
- پلاگین Checkout Field Editor for WooCommerce را نصب و فعال کنید.
- پس از فعالسازی، به ووکامرس > Checkout Fields بروید.
- در اینجا میتوانید:
- فیلد جدید اضافه کنید.
- فیلدهای موجود را ویرایش کنید.
- فیلدهای غیرضروری را حذف کنید.
قابلیتهای پلاگین:
- ویرایش برچسبها، مقادیر پیشفرض و الزامیبودن فیلدها.
- جابهجایی ترتیب فیلدها با کشیدن و رها کردن.
- پیشنمایش فیلدها در لحظه.