Puncte:0

Panoul de finalizare nu afișează panouri personalizate

drapel cn

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);
  }

}
No Sssweat avatar
drapel ua
În scopuri de testare/depanare, încercați să utilizați `$pane_form['message'] = ['#markup' => $this->t('Acesta este mesajul meu personalizat.'), ]; returnează $pane_form;` așa cum arată exemplul.
No Sssweat avatar
drapel ua
De asemenea, calea fișierului de verificare este `/modules/custom/my_checkout_pane/src/Plugin/Commerce/CheckoutPane/CustomMessagePane.php`, deci trebuie să aveți un modul personalizat numit `my_checkout_pane`, deoarece acesta este ceea ce utilizați pentru spațiul de nume
drapel cn
Mulțumesc pentru atenție. După o analiză suplimentară, am avut o problemă cu calea fișierului. Al doilea comentariu ajută la rezolvarea problemei mele.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.