1 PrestaShop - Gửi giá trị cho bộ điều khiển khác dựa trên nút gửi hiện có

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đang sử dụng PrestaShop 1.7 và muốn đạt được những điều sau:

Tôi đang thêm lý do hoàn tiền khi trả lại sản phẩm mà theo mặc định PrestaShop không có tính năng như vậy.

Hiện tại, tôi muốn lấy một giá trị từ tệp TPL mô-đun của mình. Tôi đã tạo một danh sách thả xuống cho phép người dùng chọn tùy chọn của họ. Sau đó, tôi muốn đẩy giá trị này lên AdminOrderContoder khi nút hủy sản phẩm đang khởi tạo bộ điều khiển.

Kiểu:

public function hookDisplayAdminOrder($params)
{
    return $this->display(__FILE__, 'views/templates/admin/refund_reason.tpl');
}

TPL:

<div class="panel">
<div class="panel-heading">
    <i class="icon-money"></i>
    Pick A Reason For Refunding
</div>
<select name="refund_reason" style="width: 300px;">
  <option value="0"></option>
  <option value="1">Out of stock</option>
  <option value="2">Incorrect product sent to user</option>
  <option value="3">Defective/faulty product</option>
  <option value="4">Poor quality on receipt (dirty, poor stitching etc)</option>
  <option value="5">Looks different from image on website</option>
  <option value="6">Size does not fit user</option>
  <option value="7">Change of mind</option>
  <option value="8">No indication/Others</option>
</select>

Khi quản trị viên nhấp vào nút hoàn tiền sản phẩm, nó sẽ bắt đầu như sau:

elseif (Tools::isSubmit('cancelProduct') && isset($order)) {
   // retrieve user input here
}

Tôi đã tạo một mô-đun sử dụng hook hookAction SẢNt Hủy để thêm chức năng bổ sung sau khi nút được gọi, nó sẽ gửi lại số tiền hoàn trả cho ngân hàng tương ứng thông qua API.

Vì vậy, bất kỳ ai cũng có thể chỉ ra làm cách nào tôi có thể lấy dữ liệu nhập của người dùng vì tôi không hiểu cách gửi biểu mẫu vì nút hủy sản phẩm đang gọi từ bộ điều khiển khác.

Đối với các mô-đun khác mà tôi đã tạo, biểu mẫu sẽ được xử lý cho bộ điều khiển mô-đun và tôi sẽ lấy bằng getValue. Nhưng đối với trường hợp này, nó đang sử dụng một nút hiện có và tôi không biết làm cách nào để đẩy nó lên AdminOrderControll.

    
4
1 Câu trả lời                              1                         

Giải pháp thanh lịch nhất và thân thiện với UX cho nhà bán lẻ sẽ là xử lý đầu vào của người dùng thông qua cuộc gọi Ajax.

Tôi thực sự đã phát triển một thứ tương tự cho nhà bán lẻ PrestaShop:

 Ví dụ hoàn tiền

 Lý do hoàn tiền

Công việc này:

  1. Thêm ID vào trường nhập refund_reason của bạn
  2. Trong tệp .tpl của bạn hoặc thông qua một tệp JS riêng mà bạn bao gồm, hãy sử dụng jQuery để bắt đầu gửi biểu mẫu được kích hoạt bởi nút cancelProduct
  3. Thêm phần tử của bạn vào biểu mẫu, theo cách này: var input = $('<input>').attr('type', 'hidden').attr('name', 'refund_reason').val($('#refund_reason').val()); $('form').append(input);

  4. Trong phương thức hookActionProductCancel() của bạn, chỉ cần lấy giá trị của bạn với Tools::getValue('refund_reason') hoặc $_POST['refund_reason']

2
2019-05-08 21: 37: 26Z
  1. Tôi thực sự đã thử nhấp (function () để phát hiện kích hoạt nút hủy sản xuất. Nhưng tôi vẫn không chắc chắn cách gửi các giá trị qua. Tôi muốn kích hoạt hoàn tiền với lý do và ghi lại tất cả sản phẩm và số lượng cho mỗi lần hoàn tiền. Bạn có biết làm cách nào để chỉnh sửa phần thả xuống khi chúng tôi nhấp vào "Hoàn tiền tiêu chuẩn" hoặc "Trả lại sản phẩm" không? Tôi sẽ chỉ cần thêm biểu mẫu vào đó vì tôi có thể đăng trực tiếp tới bộ điều khiển.
    2019-05-08 17: 59: 08Z
  2. Hãy chuyển sang phòng trò chuyện SO và đăng giải pháp cuối cùng sau khi nó hoạt động: chat.stackoverflow.com/rooms/192800/prestashop
    2019-05-08 18: 01: 09Z
  3. Chắc chắn, hãy chuyển sang phòng chat! :)
    2019-05-08 18: 05: 35Z
  4. Rất vui vì chúng tôi đã có thể tìm ra giải pháp! Tôi vừa cập nhật câu trả lời của mình với các bước để làm theo
    2019-05-08 21: 37: 46Z
nguồn đặt đây