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;
/**
* Oferă un panou de mesaj personalizat.
*
* @CommerceCheckoutPane(
* id = "my_checkout_pane_custom_message",
* label = @Translation ("Mesaj personalizat"),
* display_label = @Translation ("O altă etichetă de afișare"),
* default_step = "revizuire",
* wrapper_element = "fieldset",
* )
*/
clasa CustomMessagePane extinde CheckoutPaneBase {
/**
* {@inheritdoc}
*/
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;
}
/**
* {@inheritdoc}
*/
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);
}
/**
* {@inheritdoc}
*/
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);
}
}