Adăugarea unui checkbox personalizat (de exemplu pentru abonarea la newsletter) în checkout-ul Magento 2 se face printr-un modul personalizat care depinde de Magento_Checkout. Pașii de mai jos și codul sunt un exemplu; personalizează-le după nevoile tale.
1. Componenta UI (JavaScript)
Creează <Vendor>/<Module>/view/frontend/web/js/view/checkout-form.js:
define(['Magento_Ui/js/form/form'], function (Component) {
'use strict';
return Component.extend({
onSubmit: function () {
this.source.set('params.invalid', false);
this.source.trigger('customCheckoutForm.data.validate');
if (!this.source.get('params.invalid')) {
var formData = this.source.get('customCheckoutForm');
console.dir(formData);
}
}
});
});
2. Adăugarea în layout-ul de checkout
Extinde checkout_index_index.xml în <Vendor>/<Module>/view/frontend/layout/ pentru a insera componenta și câmpurile. Un checkbox se declară ca element Magento_Ui/js/form/element/boolean, folosind checkoutProvider din modulul Magento_Checkout, cu elementTmpl setat la ui/form/element/checkbox.
3. Aplicarea modificărilor
Golește fișierele generate și repornește deployment-ul:
rm -rf pub/static/frontend/* var/view_preprocessed/*
php bin/magento setup:static-content:deploy
php bin/magento cache:flush
Pentru detalii complete, consultă documentația oficială de checkout.