ฉันกำลังใช้ เอกสาร ตัวอย่าง.ด้วยเหตุผลบางประการ ฉันไม่สามารถทำให้บานหน้าต่างแบบกำหนดเองแสดงในการชำระเงินได้
ฉันพลาดอะไรไป
ฉันใช้ Drupal Commerce และ Drupal 9.2 เวอร์ชันล่าสุด
เนมสเปซ Drupal\my_checkout_pane\Plugin\Commerce\CheckoutPane;
ใช้ Drupal\commerce_checkout\Plugin\Commerce\CheckoutPane\CheckoutPaneBase
ใช้ Drupal\Core\Form\FormStateInterface;
/**
* ให้บานหน้าต่างข้อความที่กำหนดเอง
*
* @CommerceCheckoutPane(
* id = "my_checkout_pane_custom_message",
* label = @Translation("ข้อความที่กำหนดเอง"),
* display_label = @Translation("ป้ายกำกับที่แสดงอื่น"),
* default_step = "ตรวจทาน",
* wrapper_element = "ชุดฟิลด์",
* )
*/
คลาส CustomMessagePane ขยาย CheckoutPaneBase {
/**
* {@inheritdoc}
*/
ฟังก์ชันสาธารณะ buildPaneForm (อาร์เรย์ $pane_form, FormStateInterface $form_state, อาร์เรย์ &$ Complete_form) {
$form_display = EntityFormDisplay::collectRenderDisplay($this->order, 'checkout');
$form_display->buildForm($this->order, $pane_form, $form_state);
ส่งคืน $pane_form;
}
/**
* {@inheritdoc}
*/
ฟังก์ชันสาธารณะ validatePaneForm (อาร์เรย์ &$pane_form, FormStateInterface $form_state, อาร์เรย์ &$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}
*/
ฟังก์ชันสาธารณะ submitPaneForm (อาร์เรย์ &$pane_form, FormStateInterface $form_state, อาร์เรย์ &$complete_form) {
$form_display = EntityFormDisplay::collectRenderDisplay($this->order, 'checkout');
$form_display->extractFormValues($this->order, $pane_form, $form_state);
}
}