I try to add a new checkbox for the user agreements.
The checkbox is showing in the checkout fine, but it is not required.
Whats the official way to make it required?
THEMEMagento_Checkoutlayoutcheckout_index_index.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="checkout.root">
<arguments>
<argument name="jsLayout" xsi:type="array">
<item name="components" xsi:type="array">
<item name="checkout" xsi:type="array">
<item name="children" xsi:type="array">
<item name="sidebar" xsi:type="array">
<item name="children" xsi:type="array">
<item name="additional" xsi:type="array">
<item name="children" xsi:type="array">
<item name="checkboxes" xsi:type="array">
<item name="children" xsi:type="array">
<item name="user_agreement_checkbox_container" xsi:type="array">
<item name="component" xsi:type="string">Magento_Checkout/js/view/additional/user_agreement</item>
<item name="description" xsi:type="string" translate="true">Accept User Agreement</item>
<!--<item name="dataScope" xsi:type="string">amcheckout.additional.user_agreement</item>-->
<item name="provider" xsi:type="string">checkoutProvider</item>
<item name="checked" xsi:type="boolean">false</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</item>
</argument>
</arguments>
</referenceBlock>
</body>
</page>
THEME/Magento_Checkout/js/view/additional/user_agreement
define((
'jquery',
'Magento_Ui/js/form/element/single-checkbox'
), function ($, SingleCheckbox) {
'use strict';
return SingleCheckbox.extend({
defaults: {
valueMap: {
'true': true,
'false': false
}
}
});
});