0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HivePress の落とし穴:日本円での Transfer 問題とその解決方法

Posted at

HivePress の落とし穴:日本円での Transfer 問題とその解決方法

HivePress は、WordPress によるマーケットプレイスの構築を簡単にする便利なプラグインです。しかし、日本円(JPY)を利用する場合に思わぬ問題が発生することがあります。この記事では、その問題の詳細と解決方法をご紹介します。
サイトURL -> https://hivepress.io

問題の概要

HivePress の設定に不備があると、日本円(JPY)を使用した場合に Stripe を通じた Transfer(送金)が正常に行われない場合があります。

この原因は、HivePress が Transfer の際に金額(amount)を 100 倍にして処理していることです。日本円では整数単位で金額を指定する必要があるため、この設定ミスが残高不足を引き起こし、送金エラーとなります。

解決方法:カスタムコードの追加

この問題を解決するには、以下のコードを WordPress テーマの functions.php ファイルに追加します。このコードは、Transfer 処理の際に金額の単位を正しく調整するものです。

修正コード

PHP themes/functions.php
add_filter( 'hivepress/v1/components/stripe/create_transfer', 'custom_modify_transfer_args', 10, 1 );

function custom_modify_transfer_args( $transfer_args ) {
    // 変更前の $transfer_args をログに出力する
    error_log( 'Before modification: ' . print_r( $transfer_args, true ) );

    // 日本円の場合の金額を修正
    if ($transfer_args['currency'] == 'JPY') {
        $transfer_args['amount'] = round($transfer_args['amount'] * 0.01);	
    }

    // 変更後の $transfer_args をログに出力する
    error_log( 'After modification: ' . print_r( $transfer_args, true ) );
  
    return $transfer_args;
}

コードの解説

  1. フィルターフックの追加
    add_filter を使用して、HivePress の create_transfer コンポーネントをフックします。これにより、送金データをカスタマイズ可能になります。
add_filter( 'hivepress/v1/components/stripe/create_transfer', 'custom_modify_transfer_args', 10, 1 );
  1. 金額の調整
    currency が日本円(JPY)の場合、金額(amount)を 0.01 倍して調整します。これで正しい整数値が送信されるようになります。
if ($transfer_args['currency'] == 'JPY') {
    $transfer_args['amount'] = round($transfer_args['amount'] * 0.01);	
}
  1. ログの追加
    エラーが発生した場合やデバッグが必要な場合のために、処理前後のデータをログに出力します。
error_log( 'Before modification: ' . print_r( $transfer_args, true ) );
error_log( 'After modification: ' . print_r( $transfer_args, true ) );

動作確認

コードを追加した後、テスト環境で実際に送金処理を行い、エラーが解消されたことを確認してください。特に、送金金額が正しく計算され、日本円での Transfer が成功することを確認することが重要です。

まとめ

HivePress の日本円対応における不具合を解決するために、少しのカスタマイズが必要です。このコードを導入することで、日本円での送金エラーを防ぎ、スムーズな送金処理を実現できます。

問題解決の参考になれば幸いです。もし不明点や別の方法がありましたら、ぜひコメントで教えてください!

いいねしてもらえるととても励みになります🙇‍♂️🙇‍♂️🙇‍♂️

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?