返信先: PayPalエクスプレスチェックアウトの設定でエラー

フォーラム 使い方全般 PayPalエクスプレスチェックアウトの設定でエラー 返信先: PayPalエクスプレスチェックアウトの設定でエラー

#73781
Teratch
参加者

お世話になっております。
本現象について調べてみましたところ、次のような状況であることが分かりましたので連絡させていただきます。
1.Wordpress、MySQL、Welcartプラグイン(usc-e-shop.1.4.13)を新規に作成し、「クレジット決済設定」で「PayPal(EC)」にSandBoxの設定をしましたが正常に更新されます。「基本設定」の「決済種別」にも「PayPal(EC)」が選択項目として追加されます。

2.次に、Welcartプラグインのclassesライブラリのusceshop.class.phpのエンコードをSJISにから、UTF-8に変換しました。(変換した理由は、私はWelcartを英語(en)環境で使用させていただいていますが、カートの”State”の未登録エラーメッセージが”Enter the Prefecture”となっているのを”Enter the State”に置き換えています。また、その他多少の変更をしています。その際にスクリプトを変更後、エンコードをUTF-8に変換しています。ただし、今回は調査のためusceshop.class.phpのスクリプトには何も手を加えず、エンコードだけをSJISからUTF-8に変換しています。)

3.Welcartプラグインを停止し、UTF-8のusceshop.class.phpをFTPでアップロード後、Welcartプラグインを有効化し、その後、再度「クレジット決済設定」で「PayPal(EC)」にSandBoxの設定項目(PayPalアカウントメールアドレス)を変更しましたが正常に更新され、「基本設定」の「決済種別」にも「PayPal(EC)」が選択項目として追加されたままです。
しかしその後、「クレジット決済設定」で「PayPal(EC)」の項目を何も変更せずに「PayPalエクスプレスチェックアウト項目の設定を更新する」ボタンのみを押下すると、次のワーニングが画面上部に表示されます。
Warning: ksort() expects parameter 1 to be array, string given in /****************/wp-content/plugins/usc-e-shop/classes/usceshop.class.php on line 1410
「クレジット決済設定」の「PayPal(EC)」の項目は変更されたようですが、「基本設定」の「決済種別」には何も選択項目が表示されなくなりました。
「クレジット決済設定」の「PayPal(EC)」の「利用しない」をチェックして、「PayPalエクスプレスチェックアウト項目の設定を更新する」ボタンを押下すると、次のエラーになります。
Fatal error: Cannot unset string offsets in /****************/wp-content/plugins/usc-e-
shop/classes/usceshop.class.php on line 1398

この後、SJISのusceshop.class.phpに入れ替えても、現象は改善されなくなります。

4、上記1の時に、新規インストール直後(usceshop.class.phpがSJISの状態)でやはり「クレジット決済設定」の「PayPal(EC)」の項目を何も変更せずに「PayPalエクスプレスチェックアウト項目の設定を更新する」ボタンのみを押下してみていますが、問題なく更新され、「基本設定」の「決済種別」も正常に表示されていました。

5.調査結果として、usceshop.class.phpのエンコードをSJISからUTF-8に変換すると、正常に変換できない項目があるのではないでしょうか。Welcartプラグインの各スクリプトのエンコードを見ると、SJISのものとUTF-8のものがありますが、こういった事情があるため、そのようにしていらっしゃるのでしょうか。つまり、Welcart本体の各スクリプトに変更を加える必要がある場合には、エンコードは変えてはいけないと理解いたしました。

6.もしかしたら、SJISからUTF-8に正常に変換できないのは私が使用しているエディタに問題があるのかもしれません。そちらで再現しないようでしたら、是非そちらで使用しているエディタをご紹介いただけませんでしょうか。

お手数をお掛けいたしました。今後ともよろしくお願い申し上げます。

  • この返信は9年、 1ヶ月前にnanbuが編集しました。