Eu folosesc documentație exemplu.Din anumite motive, nu pot face ca panoul personalizat să fie afișat la finalizarea comenzii.
Ce îmi lipsește?
Folosesc cea mai recentă versiune a Drupal Commerce și Drupal 9.2.
spațiu de nume Drupal\my_checkout_pane\Plugin\Commerce\CheckoutPane;
utilizați Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane\CheckoutPaneBase;
utilizați Drupal\Core\Form\FormStateInterface;
clasa CustomMessagePane extinde CheckoutPaneBase {
funcția publică buildPaneForm(array $pane_form, FormStateInterface $form_state, array &$complete_form) {
$form_display = EntityFormDisplay::collectRenderDisplay($this->order, 'checkout');
$form_display->buildForm($this->order, $pane_form, $form_state);
returnează $pane_form;
}
funcția publică validatePaneForm(array &$pane_form, FormStateInterface $form_state, array &$complete_form) {
$form_display = EntityFormDisplay::collectRenderDisplay($this->order, 'checkout');
$form_display->extractFormValues($this->order, $pane_form, $form_state);
$form_display->validateFormValues($this->order, $pane_form, $form_state);
}
funcția publică submitPaneForm(array &$pane_form, FormStateInterface $form_state, array &$complete_form) {
$form_display = EntityFormDisplay::collectRenderDisplay($this->order, 'checkout');
$form_display->extractFormValues($this->order, $pane_form, $form_state);
}
}