3

我一直在对 wordpress 电子商务插件进行一些更改,并且我已经取出了大量功能以使其更简单地满足我的需求。现在它不会在按下购买按钮后重定向到感谢页面,因为该函数使用了一些我去掉的变量 order_id,等等。

我已经为此工作了几个小时,我想做的就是单击购买按钮重定向到thankyou.php。(我现在知道它使用 ajax,我也不介意使用它)我不需要它来处理 processpayment 功能或类似的东西。真的很简单。

这是我正在使用的代码和函数:

非常感谢!!!

输入元素:

<div id="payment">

        <div class="form-row">

            <noscript><?php _e('Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so.', 'jigoshop'); ?><br/><input type="submit" class="button-alt" name="update_totals" value="<?php _e('Update totals', 'jigoshop'); ?>" /></noscript>

            <?php jigoshop::nonce_field('process_checkout')?>
            <input type="submit" class="button-alt" name="place_order" id="place_order" value="<?php _e('Next Step', 'jigoshop'); ?>" />

            <?php do_action( 'jigoshop_review_order_before_submit' ); ?>

            <?php if (get_option('jigoshop_terms_page_id')>0) : ?>
            <p class="form-row terms">
                <label for="terms" class="checkbox"><?php _e('I accept the', 'jigoshop'); ?> <a href="<?php echo get_permalink(get_option('jigoshop_terms_page_id')); ?>" target="_blank"><?php _e('terms &amp; conditions', 'jigoshop'); ?></a></label>
                <input type="checkbox" class="input-checkbox" name="terms" <?php if (isset($_POST['terms'])) echo 'checked="checked"'; ?> id="terms" />
            </p>
            <?php endif; ?>

            <?php do_action( 'jigoshop_review_order_after_submit' ); ?>

        </div>

    </div>

checkout.class.php:

        // Process Payment
                    $result = $available_gateways["cheque"]->process_payment( $order_id );


                    // Redirect to success/confirmation/payment page

                        if (is_ajax()) : 
                            ob_clean();
                            echo json_encode($result);
                            exit;
                        else :
                            wp_safe_redirect( $result['redirect'] );
                            exit;
                        endif;


                else :

                    // No payment was required for order
                    $order->payment_complete();

                    // Empty the Cart
                    jigoshop_cart::empty_cart();

                    // Redirect to success/confirmation/payment page
                    $checkout_redirect = apply_filters( 'jigoshop_get_checkout_redirect_page_id', get_option( 'jigoshop_thanks_page_id' ) );
                    if (is_ajax()) : 
                        ob_clean();
                        echo json_encode( array( 'redirect' => get_permalink( $checkout_redirect ) ) );
                        exit;
                    else :
                        wp_safe_redirect( get_permalink( $checkout_redirect ) );
                        exit;
                    endif;

                endif;

                // Break out of loop
                break;

流程支付功能:

function process_payment() {


        // Remove cart
        jigoshop_cart::empty_cart();

        // Return thankyou redirect
        $checkout_redirect = apply_filters( 'jigoshop_get_checkout_redirect_page_id', get_option( 'jigoshop_thanks_page_id' ) );
        return array(
            'result'    => 'success',
            'redirect'  => add_query_arg('key', $order->order_key, add_query_arg('order', $order_id, get_permalink( $checkout_redirect )))
        );

    }

这是我从萤火虫得到的错误详细信息:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

打开调试后,出现以下错误:

注意:未定义索引:第 710 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php 中的 aiosp_enabled

注意:未定义索引:第 710 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php 中的 aiosp_enabled

注意:使用未定义的常量 PLUGIN_URL - 在第 81 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/wp-google-fonts/google-fonts.php 中假定为“PLUGIN_URL”

注意:使用未定义的常量 PLUGIN_PATH - 在第 82 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/wp-google-fonts/google-fonts.php 中假定为“PLUGIN_PATH”

注意:未定义索引:第 2306 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jetpack/jetpack.php 中的主机

注意:未定义索引:第 198 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-first_name

注意:未定义索引:第 199 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-last_name

注意:未定义索引:第 200 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-company

注意:未定义索引:第 201 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的运输地址

注意:未定义索引:第 202 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-address-2

注意:未定义索引:第 203 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-city

注意:未定义索引:第 204 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-state

注意:未定义索引:第 205 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-postcode

注意:未定义索引:第 206 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-country

重要的:

注意:未定义变量:第 211 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 user_id

注意:未定义索引:第 256 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 order_comments

注意:未定义索引:第 264 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-company

注意:未定义索引:第 265 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的帐单地址

注意:未定义索引:第 266 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-address-2

注意:未定义索引:第 267 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-city

注意:未定义索引:第 268 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-postcode

注意:未定义索引:第 269 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-country

注意:未定义索引:第 270 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-state

注意:未定义索引:第 272 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-phone

注意:未定义索引:第 282 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping_method

注意:未定义索引:第 283 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 payment_method

注意:未定义索引:第 1105 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/aioseop.class.php 中的 aiosp_edit

注意:未定义索引:第 1106 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/aioseop.class.php 中的 nonce-aioseop-edit

重要的:

注意:未定义变量:第 364 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 user_id

注意:未定义变量:第 379 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 available_gateways

重要的:

致命错误:在第 379 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的非对象上调用成员函数 process_payment()

注意:未定义索引:第 710 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php 中的 aiosp_enabled

注意:未定义索引:第 710 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php 中的 aiosp_enabled

注意:使用未定义的常量 PLUGIN_URL - 在第 81 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/wp-google-fonts/google-fonts.php 中假定为“PLUGIN_URL”

注意:使用未定义的常量 PLUGIN_PATH - 在第 82 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/wp-google-fonts/google-fonts.php 中假定为“PLUGIN_PATH”

注意:未定义索引:第 2306 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jetpack/jetpack.php 中的主机

注意:未定义索引:第 198 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-first_name

注意:未定义索引:第 199 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-last_name

注意:未定义索引:第 200 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-company

注意:未定义索引:第 201 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的运输地址

注意:未定义索引:第 202 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-address-2

注意:未定义索引:第 203 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-city

注意:未定义索引:第 204 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-state

注意:未定义索引:第 205 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-postcode

注意:未定义索引:第 206 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping-country

注意:未定义变量:第 211 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 user_id

注意:未定义索引:第 256 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 order_comments

注意:未定义索引:第 264 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-company

注意:未定义索引:第 265 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的帐单地址

注意:未定义索引:第 266 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-address-2

注意:未定义索引:第 267 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-city

注意:未定义索引:第 268 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-postcode

注意:未定义索引:第 269 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-country

注意:未定义索引:第 270 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-state

注意:未定义索引:第 272 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 billing-phone

注意:未定义索引:第 282 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 shipping_method

注意:未定义索引:第 283 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 payment_method

注意:未定义索引:第 1105 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/aioseop.class.php 中的 aiosp_edit

注意:未定义索引:第 1106 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/aioseop.class.php 中的 nonce-aioseop-edit

注意:未定义变量:第 364 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 user_id

注意:未定义变量:第 379 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的 available_gateways

重要的!!!!:

致命错误:在第 379 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php 中的非对象上调用成员函数 process_payment()

注意:未定义索引:第 710 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php 中的 aiosp_enabled

注意:未定义索引:第 710 行 /home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php 中的 aiosp_enabled

注意:使用未定义的常量 PLUGIN_URL - 在第 81 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/wp-google-fonts/google-fonts.php 中假定为“PLUGIN_URL”

注意:使用未定义的常量 PLUGIN_PATH - 在第 82 行的 /home2/findmyki/public_html/bolistylus/wp-content/plugins/wp-google-fonts/google-fonts.php 中假定为“PLUGIN_PATH”

4

2 回答 2

1
<input type="button" value="Submit" onClick="location.href='thankyou.php';">

如果您不需要它来做任何其他事情,请尝试。您可能需要编辑 href 以使其到达您想要的位置。它在我的网站上为我工作。

此外,您始终可以将表单的操作重定向到另一个页面,然后该页面在处理后重定向到感谢页面。

只需使用 header('Location: '); 重定向。

于 2012-01-05T05:48:25.593 回答
1

响应选项卡中应该有一些文本或 json 字符串,但它是空的。这可能是由于服务器中的 php 设置被设置为隐藏所有错误消息而隐藏的 php 错误的结果,这很好。

打开调试请参阅http://codex.wordpress.org/Editing_wp-config.php#Debug 并重试。响应选项卡中应该有一些文本。

更新开启调试:

这里看起来有些不对劲。当您发送 Ajax 请求时,您是否收到这些错误?

查看这些错误,我可以看到您有致命错误,它必须停止代码执行。

Fatal error: Call to a member function process_payment() on a non-object in /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php on line 379

您已经修改了原始文件 jigoshop_checkout.class.php,所以我很难找到这些错误的确切行。但是“注意:未定义的索引:”表示该行中有一个数组变量没有索引...

在此文件中调用了一次方法“process_payment”

// Process Payment
$result = $available_gateways[$this->posted['payment_method']]->process_payment( $order_id );

$available_gateways 是一个包含不同支付方式对象的数组。但是 $this->posted['payment_method'] 中定义的付款方式没有对象

此外,我可以看到另一个错误消息状态变量 $available_gateways 不存在/定义

Notice: Undefined variable: available_gateways in /home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php on line 379

该变量只能在 jigoshop_cart::needs_payment() 返回 true 时定义

if (jigoshop_cart::needs_payment()) :
        // Payment Method
        $available_gateways = jigoshop_payment_gateways::get_available_payment_gateways();
        if (!isset($available_gateways[$this->posted['payment_method']])) :
                jigoshop::add_error( __('Invalid payment method.','jigoshop') );
        else :
                // Payment Method Field Validation
                $available_gateways[$this->posted['payment_method']]->validate_fields();
        endif;
endif;
于 2012-01-03T20:41:05.100 回答