Puncte:0

Modificați titlul prețului produsului în formă

drapel cn

Cum pot accesa eticheta câmpului preț al produsului pentru a-l schimba, de exemplu, la „cantitate” în loc de „preț”?

Codul html pentru domeniu este:

<div class="js-form-item form-item js-form-type-commerce-number form-item-variations-entity-price-0-number js-form-item-variations-entity-price-0-number">

<label for="edit-variations-entity-price-0-number" class="js-form-required form-required">Price</label>

<input data-drupal-selector="edit-variations-entity-price-0-number" type="text" id="edit-variations-entity-price-0-number" name="variations[entity][price][0][number]" value="" size="10" maxlength="128" class="form-text required" required="required">

Am încercat diverse alternative, dar nu am găsit o modalitate de a ajunge la titlu sau la câmpul de preț.

function THEME_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
    $form['variations']['entity']['price'][0]['number']= t('Suma');
    $form['variations']['entity']['price']['number']= t('Suma');
    $form['preț']= t('Suma');
}

De asemenea, nu am putut găsi exemple de utilizare a form_alter pe formularul de produs Drupal 8 Commerce în timp ce era posibil cu Drupal 7.

drapel cn
Trebuie să utilizați `hook_form_alter()` pe ID-ul corect al formularului. Prin urmare, primul pas este să găsiți **ID-ul formularului**, apoi să îl utilizați pentru a arunca formularul și a afla ce trebuie să schimbați. Vedeți https://drupal.stackexchange.com/questions/5802/how-can-i-find-the-form-id-of-a-form
drapel cn
ID formular = „commerce_product_default_add_form”. Unde să plec de aici?
drapel cn
Instalați modulul Devel (nu în producție!) și utilizați Kint. Apoi puteți face ceva de genul `kint($form)` pentru a obține o listă oarecum frumoasă a tuturor variabilelor. https://www.drupaleasy.com/quicktips/drupal-8-debugging-kareful-klicking-kint
drapel cn
Acest lucru nu funcționează: `funcția THEME_commerce_product_default_add_form_form_alter(&$form, &$form_state, $form_id) {dpm($form_id); }`
drapel cn
Aceasta pare să funcționeze: `funcția THEME_form_alter(&$form, &$form_state, $form_id) { if ($form_id == 'commerce_product_default_add_form') {dpm($form); } }`
drapel cn
Ar fi `THEME_form_commerce_product_default_add_form_alter` pentru cârligul mai specific - aveai prima parte `form_` la sfârșit
Puncte:1
drapel cn
$form['variations']['widget']['entity']['price']['widget'][0]['#title'] = t('Suma');
drapel cn
Este exact ceea ce aveam nevoie!

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.