3

私はワードプレスのeコマースプラグインにいくつかの変更を加えており、ニーズに合わせて簡単にするためにたくさんの関数を削除しました。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 )))
        );

    }

これが私がfirebugから得ているエラーの詳細です:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

デバッグをオンにした後、次のエラーが発生しました。

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.phpの710行目のaiosp_enabled

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.phpの710行目の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のshipping-address

注意:未定義のインデックス: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

注意:未定義のインデックス:請求-会社(/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php、264行目)

注意:未定義のインデックス:265行目の/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpのbilling-address

注意:未定義のインデックス:266行目の/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpのbilling-address-2

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpの267行目のbilling-city

注意:未定義のインデックス:請求-268行目の/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpの郵便番号

注意:未定義のインデックス: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

重要:

注意:未定義の変数:/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpの364行目の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()を呼び出す

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.phpの710行目のaiosp_enabled

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.phpの710行目の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のshipping-address

注意:未定義のインデックス: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

注意:未定義のインデックス:請求-会社(/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.php、264行目)

注意:未定義のインデックス:265行目の/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpのbilling-address

注意:未定義のインデックス:266行目の/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpのbilling-address-2

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpの267行目のbilling-city

注意:未定義のインデックス:請求-268行目の/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpの郵便番号

注意:未定義のインデックス: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

注意:未定義の変数:/home2/findmyki/public_html/bolistylus/wp-content/plugins/jigoshop/classes/jigoshop_checkout.class.phpの364行目の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()を呼び出す

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.phpの710行目のaiosp_enabled

注意:未定義のインデックス:/home2/findmyki/public_html/bolistylus/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.phpの710行目の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

応答タブにテキストまたは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を変更したため、これらのエラーの正確な行を見つけるのは困難です。ただし、「注意:未定義のインデックス:」は、その行に配列変数があり、インデックスが...ではないことを意味します。

このファイルで1回呼び出されるメソッド'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 に答える
1
<input type="button" value="Submit" onClick="location.href='thankyou.php';">

他に何もする必要がない場合は、それを試してください。目的の場所に移動するには、hrefを編集する必要がある場合があります。それは私のサイトで私のために働いた。

また、フォームのアクションをいつでも別のページにリダイレクトして、そのページを処理後にサンキューページにリダイレクトすることができます。

header('Location:');を使用するだけです。リダイレクトします。

于 2012-01-05T05:48:25.593 に答える