Điểm:0

Thay đổi tiêu đề giá sản phẩm trong biểu mẫu

lá cờ cn

Làm cách nào tôi có thể truy cập nhãn của trường giá sản phẩm để thay đổi nhãn đó thành "số tiền" thay vì "giá"?

Html cho trường này là:

<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">

Tôi đã thử nhiều lựa chọn khác nhau nhưng không tìm được cách tiếp cận tiêu đề hoặc trường giá.

function THEME_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
    $form['variations']['entity']['price'][0]['number']= t('Số tiền');
    $form['variations']['entity']['price']['number']= t('Số tiền');
    $form['price']= t('Số lượng');
}

Tôi cũng không thể tìm thấy bất kỳ ví dụ nào để sử dụng form_alter trên biểu mẫu sản phẩm Drupal 8 Commerce trong khi Drupal 7 lại có thể.

lá cờ cn
Bạn cần sử dụng `hook_form_alter()` trên đúng ID biểu mẫu. Vì vậy, bước đầu tiên là tìm **ID biểu mẫu**, sau đó sử dụng ID đó để kết xuất biểu mẫu và tìm ra những gì bạn cần thay đổi. Xem https://drupal.stackexchange.com/questions/5802/how-can-i-find-the-form-id-of-a-form
lá cờ cn
ID biểu mẫu = "commerce_product_default_add_form". Đi đâu từ đây?
lá cờ cn
Cài đặt mô-đun Devel (không sản xuất!) Và sử dụng Kint. Sau đó, bạn có thể làm điều gì đó như `kint($form)` để có được một danh sách khá đẹp về tất cả các biến. https://www.drupaleasy.com/quicktips/drupal-8-debugging-kareful-klicking-kint
lá cờ cn
Điều này không hoạt động: `function THEME_commerce_product_default_add_form_form_alter(&$form, &$form_state, $form_id) {dpm($form_id); }`
lá cờ cn
Điều này dường như làm việc: `hàm THEME_form_alter(&$form, &$form_state, $form_id) { if ($form_id == 'commerce_product_default_add_form') {dpm($form); } }`
lá cờ cn
Nó sẽ là `THEME_form_commerce_product_default_add_form_alter` cho hook cụ thể hơn - bạn có phần `form_` đầu tiên ở cuối
Điểm:1
lá cờ cn
$form['variations']['widget']['entity']['price']['widget'][0]['#title'] = t('Số tiền');
lá cờ cn
Đây chính xác là những gì tôi cần!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.