Tôi đã thêm trường ẩn vào phần vận chuyển của thanh toán. Nếu trường hiển thị - xác thực hoạt động, nhưng nếu tôi ẩn nó - bất kỳ xác thực nào bị thiếu.
Cần ngăn không cho đi xa hơn từ vận chuyển đến thanh toán bằng cách nhấp vào nút "Tiếp theo" và hiển thị một số thông báo lỗi hoặc cảnh báo cho người dùng.
Có cách nào để thực hiện điều này thông qua LayoutProcessor?
Hoặc để mở rộng xác nhận magento trong mô-đun của tôi cho mục đích này?
Các phiên bản khác cũng sẽ hữu ích.
CẬP NHẬT: Có lẽ điều này sẽ hữu ích cho câu trả lời. Ngay bây giờ đang cố gắng thực hiện xác nhận tương tự như trường email khi thanh toán. Ý tưởng là tiếp theo. Tạo biểu mẫu tùy chỉnh (như trường email nằm trong biểu mẫu riêng) và xác thực nó theo tài liệu này http://devdocs.magento.com/guides/v2.0/howdoi/checkout/checkout_form.html#template
<?php
namespace Modules\Deliverydate\Model\Checkout;
class LayoutProcessorPlugin
{
/**
* @param \Magento\Checkout\Block\Checkout\LayoutProcessor $subject
* @param array $jsLayout
* @return array
*/
public function afterProcess(
\Magento\Checkout\Block\Checkout\LayoutProcessor $subject,
array $jsLayout
) {
$jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']
['shippingAddress']['children']['shipping-address-fieldset']['children']['delivery_slot'] = [
'component' => 'Magento_Ui/js/form/element/abstract',
'config' => [
'customScope' => 'shippingAddress',
'template' => 'ui/form/field',
// 'elementTmpl' => 'ui/form/element/date',
'options' => [],
'id' => 'enteredSlot'
],
'dataScope' => 'shippingAddress.enteredSlot',
'label' => 'Delivery Slot',
'provider' => 'checkoutProvider',
'visible' => false,
'validation' => [
// 'required-entry' => true,
'validate-no-empty' => true,
],
'sortOrder' => 1,
'id' => 'enteredSlot'
];
return $jsLayout;
}
}