2016-11-18 23 views
15

Tôi đang phát triển một module thanh toán tùy chỉnh trong PrestaShop 1.6 đường front controller của tôi là: mymodule/controllers/trước/payment.phpKhông thể thêm dữ liệu thuộc tính trong thẻ script trong PrestaShop 1.6

payment.php chứa:

$this->context->smarty->assign(array( 
 
'dataCompleteURL' => Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__.'index.php?fc=module&module=mymodule&controller=callback&cart='.$cartID)); 
 
$this->setTemplate('payment.tpl');

con đường tập tin mẫu của tôi là: mymodule/views/templates/trước/payment.tpl

payment.tpl chứa:

<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>

Vấn đề là ở localhost của tôi nó đang làm việc tốt. Tôi nhận được URL đầy đủ dữ liệu trong thẻ tập lệnh. Nhưng khi tôi cài đặt các mô-đun trong máy chủ thử nghiệm của tôi, tôi không nhận được URL đầy đủ dữ liệu.

Bất kỳ trợ giúp hoặc đề xuất nào sẽ được đánh giá cao. Cảm ơn trước.

CẬP NHẬT

Tôi đã phát hiện ra rằng vấn đề là "https" trong "src" của thẻ script. Tôi không thể hiểu tại sao dữ liệu hoàn thành biến mất nếu URL src bắt đầu bằng https. mà không https nó không quan trọng

khi tôi xem nguồn từ trình duyệt cho đoạn mã sau với https trong src:

<script src="http://easternbank.test.gateway.com/checkout.js" data-complete="{$dataCompleteURL}" type="text/javascript"> </script>

thuộc tính dữ liệu hoàn toàn biến mất. Nhưng khi tôi xem nguồn cho kịch bản với src mà không có "https" tôi nhận được thuộc tính hoàn thành dữ liệu.

Tôi không thể tìm thấy lý do.

HOẶC tôi có thể thêm javascript trong điều khiển payment.php sử dụng:

$this->context->controller->addJS(($this->_path).'js/checkout.js');

Nhưng không biết làm thế nào để vượt qua các thuộc tính dữ liệu trong addJS chức năng. Nếu bất kỳ chuyên gia PrestaShop nào giúp tôi, anh ấy sẽ tiết kiệm thời gian của tôi. Cảm ơn

+0

Trong payment.tpl đặt một nơi nào đó {$ dataCompleteURL | var_dump} và kiểm tra kết quả. –

+0

Tôi nhận được giá trị của $ dataCompleteURL. xin vui lòng xem UPDATE –

Trả lời

6

Cuối cùng tôi đã tìm ra giải pháp. Nó có vẻ rất lạ với tôi.Bởi vì tôi đã làm chỉ thay đổi sau trong BO trong prestashop:

  • đi đến back office
  • đi nâng cao Parameters -> Hiệu suất
  • đi đến CCC
  • tắt tùy chọn: Di chuyển hoạt Javascript để cuối

Vậy đó. Vấn đề của tôi được giải quyết.

BTW, tôi đã học được điều gì đó từ vấn đề này: Tôi nên thử mọi tùy chọn cấu hình có thể có trong văn phòng của prestashop.

Tôi không nghĩ rằng tùy chọn này có thể chịu trách nhiệm cho loại sự cố này. Nhưng nó là. Vì vậy, cố gắng mọi cách có thể nên là công thức chính để giải quyết một vấn đề mặc dù có vẻ như điều này không liên quan đến bối cảnh vấn đề có liên quan.

Các vấn đề liên quan