Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我试图跳过结帐页面中的付款地址_Php_Opencart_Opencart 3 - Fatal编程技术网

Php 我试图跳过结帐页面中的付款地址

Php 我试图跳过结帐页面中的付款地址,php,opencart,opencart-3,Php,Opencart,Opencart 3,在结账过程中,我试图隐藏第二步,即付款地址。我的解决方案是首先调用交付地址,然后使用相同的地址保存支付地址的数据,以及使用ajax post方法 但是我在ajaxpost方法中得到了一个错误,该方法用于index.php?route=checkout/payment\u address/save 我尝试在#按钮shipping address单击功能中进行支付地址/保存邮寄呼叫,但它不起作用 // Shipping Address ... $(document).delegate('#butto

在结账过程中,我试图隐藏第二步,即付款地址。我的解决方案是首先调用交付地址,然后使用相同的地址保存支付地址的数据,以及使用ajax post方法

但是我在ajaxpost方法中得到了一个错误,该方法用于
index.php?route=checkout/payment\u address/save

我尝试在
#按钮shipping address
单击功能中进行支付地址/保存邮寄呼叫,但它不起作用

// Shipping Address
...
$(document).delegate('#button-shipping-address', 'click', function() {
    $.ajax({
        url: 'index.php?route=checkout/shipping_address/save',
        type: 'post',
        data: $('#collapse-shipping-address input[type=\'text\'], #collapse-shipping-address input[type=\'date\'], #collapse-shipping-address input[type=\'datetime-local\'], #collapse-shipping-address input[type=\'time\'], #collapse-shipping-address input[type=\'password\'], #collapse-shipping-address input[type=\'checkbox\']:checked, #collapse-shipping-address input[type=\'radio\']:checked, #collapse-shipping-address textarea, #collapse-shipping-address select'),
        dataType: 'json',
        beforeSend: function() {
            $('#button-shipping-address').button('loading');
        },
        success: function(json) {      
            $('.alert-dismissible, .text-danger').remove();
            $('.form-group').removeClass('has-error');

            if (json['redirect']) {
                location = json['redirect'];
            } else if (json['error']) {
                $('#button-shipping-address').button('reset');

                if (json['error']['warning']) {
                    $('#collapse-shipping-address .panel-body').prepend('<div class="alert alert-warning alert-dismissible">' + json['error']['warning'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');
                }

                for (i in json['error']) {
                    var element = $('#input-shipping-' + i.replace('_', '-'));

                    if ($(element).parent().hasClass('input-group')) {
                        $(element).parent().after('<div class="text-danger">' + json['error'][i] + '</div>');
                    } else {
                        $(element).after('<div class="text-danger">' + json['error'][i] + '</div>');
                    }
                }

                // Highlight any found errors
                $('.text-danger').parent().parent().addClass('has-error');
            } else {

            //****** start payment address

                                $.ajax({
        url: 'index.php?route=checkout/payment_address/save',
        type: 'post',
        data: $('#collapse-shipping-address input[type=\'text\'], #collapse-shipping-address input[type=\'date\'], #collapse-shipping-address input[type=\'datetime-local\'], #collapse-shipping-address input[type=\'time\'], #collapse-shipping-address input[type=\'password\'], #collapse-shipping-address input[type=\'checkbox\']:checked, #collapse-shipping-address input[type=\'radio\']:checked, #collapse-shipping-address textarea, #collapse-shipping-address select,collapse-shipping-address label'),
        dataType: 'json',
        beforeSend: function() {
            //$('#button-payment-address').button('loading');
        },
        complete: function() {
            //$('#button-payment-address').button('reset');
        },
        success: function(jsons) {
            console.log('sent payment add'+JSON.stringify(jsons));
        }
    });

                            //******* end of payment call

                $.ajax({
                    url: 'index.php?route=checkout/shipping_method',
                    dataType: 'html', 

在过去的两天里,我一直在研究它,但找不到解决方案。

在OC3.0.x上隐藏3步的工作解决方案: 在文件catalog/controller/checkout/shipping_address.php中,
$this->load->language('checkout/checkout')之后的somwhere添加:

if (!empty($this->session->data['shipping_address']['address_id'])) {
    $this->session->data['shipping_address']['address_id'] = $this->session->data['payment_address']['address_id'];
}
之后,您需要跳过3步才能继续。 文件中:catalog/view/theme/your_template/template/checkout/shipping_address.twig 添加此脚本:

<script type="text/javascript"><!--
    if ($('#shipping-address-clicked').length == 0) {
        setTimeout(function(){
            $('#button-guest-shipping').click();
            $('#button-shipping-address').click();
            $('body').append('<div id="shipping-address-clicked" />');
                                }, 500);
                            }
        $('#button-guest, #button-register, #button-payment-address, #collapse-payment-address').click(function(){
        $('#shipping-address-clicked').remove();
        });
   //--></script>

在OC3.0.x上隐藏3个步骤的工作解决方案: 在文件catalog/controller/checkout/shipping_address.php中,
$this->load->language('checkout/checkout')之后的somwhere添加:

if (!empty($this->session->data['shipping_address']['address_id'])) {
    $this->session->data['shipping_address']['address_id'] = $this->session->data['payment_address']['address_id'];
}
之后,您需要跳过3步才能继续。 文件中:catalog/view/theme/your_template/template/checkout/shipping_address.twig 添加此脚本:

<script type="text/javascript"><!--
    if ($('#shipping-address-clicked').length == 0) {
        setTimeout(function(){
            $('#button-guest-shipping').click();
            $('#button-shipping-address').click();
            $('body').append('<div id="shipping-address-clicked" />');
                                }, 500);
                            }
        $('#button-guest, #button-register, #button-payment-address, #collapse-payment-address').click(function(){
        $('#shipping-address-clicked').remove();
        });
   //--></script>

您确定发送的数据正确吗?您在Ajax.data下传递的信息似乎不正确。您可能需要使用
.serialize()
。我建议你先把它移到它自己的变量,你可以测试它,而不是
$('loooooong string…)
是的,我的朋友,我正在为调用和它的正确性发送相同的数据,我已经通过调用index.php?route=checkout/shipping\u address/save确认了这一点,在调用shipping\u address/save时没有出现错误,并给了我这个响应“[]”我建议查看OC marketplace。。。例如:在那里你会找到你需要的东西,而且不太贵。你会为将来买便宜的课程。我的意思是你会在那里找到代码,它让你了解它是如何在OC框架中工作的。@K.B.谢谢你的链接,但不管是便宜还是贵,我正在尝试解决这个问题,我知道做得对,但我陷入了这个问题,这个问题可能有一个小的解决方案。当您可以购买模块时,提出stackoverflow问题的目的是什么:DOK。我认为您无法以自己的方式实现这一点,因为发货地址数据尚未填充,在您不执行发货地址步骤之前,我的意思是所有字段都是空的。也许您需要在controller checkout.php中创建一些函数,从DB中调用shipping_地址数据,并在ajax中调用它。隐藏3个步骤的最简单方法。。您的解决方案应该有效。您确定发送的数据正确吗?您在Ajax.data下传递的信息似乎不正确。您可能需要使用
.serialize()
。我建议你先把它移到它自己的变量,你可以测试它,而不是
$('loooooong string…)
是的,我的朋友,我正在为调用和它的正确性发送相同的数据,我已经通过调用index.php?route=checkout/shipping\u address/save确认了这一点,在调用shipping\u address/save时没有出现错误,并给了我这个响应“[]”我建议查看OC marketplace。。。例如:在那里你会找到你需要的东西,而且不太贵。你会为将来买便宜的课程。我的意思是你会在那里找到代码,它让你了解它是如何在OC框架中工作的。@K.B.谢谢你的链接,但不管是便宜还是贵,我正在尝试解决这个问题,我知道做得对,但我陷入了这个问题,这个问题可能有一个小的解决方案。当您可以购买模块时,提出stackoverflow问题的目的是什么:DOK。我认为您无法以自己的方式实现这一点,因为发货地址数据尚未填充,在您不执行发货地址步骤之前,我的意思是所有字段都是空的。也许您需要在controller checkout.php中创建一些函数,从DB中调用shipping_地址数据,并在ajax中调用它。隐藏3个步骤的最简单方法。。你的解决方案应该有效。
<input type="checkbox" name="shipping_address" value="1" checked="checked" style="display: none" />
{% else %}