2017-12-08 34 views
0

유효성 검사 코드를 실행하여 새 창을 여는 데 도움이 필요합니다. 것은 다음 PHP 파일이 실행될 때 필요하다는 것입니다.PrestaShop을 사용하여 PHP로 새 창 열기

<?php 

class hhpaymentvalidationModuleFrontController extends ModuleFrontController 
{ 


    /** 
    * Validation du paiement standard 
    * Puis redirection vers la page de succès de commande 
    */ 
    public function postProcess() 
    { 
     $cart = $this->context->cart; 

     $this->abrir("http://davivienda.com"); 
//  0abrir("http://davivienda.com"); 


     if ($cart->id_customer == 0 || $cart->id_address_delivery == 0 || $cart->id_address_invoice == 0 || !$this->module->active) { 
      Tools::redirect('index.php?controller=order&step=1'); 
     } 

     $customer = new Customer($cart->id_customer); 

     if (!Validate::isLoadedObject($customer)) { 
      Tools::redirect('index.php?controller=order&step=1'); 
     } 

     $currency = $this->context->currency; 
     $total = (float)$cart->getOrderTotal(true, Cart::BOTH); 

     //La command passe directement en statut payé 
     $this->module->validateOrder((int)$cart->id, Configuration::get('PS_OS_PAYMENT'), $total, $this->module->displayName, null, array(), (int)$currency->id, false, $customer->secure_key); 
     Tools::redirect('index.php?controller=order-confirmation&id_cart='.(int)$cart->id.'&id_module='.(int)$this->module->id.'&id_order='.$this->module->currentOrder.'&key='.$customer->secure_key); 
    } 

public function abrir($param) 
    { 

    echo '<script type="text/javascript">'; 
    echo "window.open('{$param}', 'ventana1', 'scrollbars=0, width=300, height=300')"; 
    echo '</script>'; 
    } 

} 
+0

에 오신 것을 환영합니다 새로운 창을 열려면 jQuaery를 사용! 더 많은 사람들이 당신을 이해할 수 있도록 영어로 제목을 번역했습니다. 나는 또한 당신의 철자 중 일부를 수정하고 "좋은 친구", "도와주세요"및 반복 된 구와 같은 질문에서 불필요한 텍스트를 제거했습니다. 문제가 무엇이며 게시 된 코드가 작동하지 않는 이유에 대한 자세한 설명을 통해 질문을 업데이트 할 수 있습니다. 오류가 발생합니까? – agrm

답변

0

서버 측 언어이기 때문에 PHP 스크립트를 통해 새 창/탭을 열 수 없습니다. 하지만 리다이렉트 URL 내에서 변수를 전달하여 클라이언트 측에서 사용할 수 있습니다.

처럼
Tools::redirect('index.php?controller=order&step=1&popup=1'); 

는 스택 오버플로 URL

$(document).ready(function() { 
    let searchParams = new URLSearchParams(window.location.search); 
    if (searchParams.has('popup')) { 
    window.open('Your URL', 'window name', 'window settings') 
    } 
}); 
+0

두 가지 의문점이 있습니다. 1. 도구에서 :: 리디렉션 만 다른 페이지로 리디렉션하면 새 창이 열리지 않습니다. 2. 내 페이지에 jQuaery를 넣어야합니까? validation.php –

+0

반드시 다른 페이지로 리디렉션 할 필요는 없지만 같은 페이지에 머물러있을 수 있지만 유효성 검사를 한 후에 URL에 새로운 매개 변수를 추가하고 새로운 멋진 변수를 추가하면 이것들이 필요하다. 그리고 주 js 파일 인 global.js에 추가 할 수있는 스크립트 –

+0

@ Alexander Grosul - 내가 필요한 것이 맞다면 지불 게이트웨이로 새 창구를 열거 나 지불해야하는 양식이 있는지 모르겠습니다. 결제 API를 반환했습니다. 결제 확인을 반환했습니다. –