WelcartでPayPal支払いを選択できるようにした時、高額商品だと、PayPal手数料3~4%は利益を圧迫してしまいます。
そこで、PayPal支払いの場合は、顧客に手数料を支払ってもらえるよう、手数料を設定できるようにしたいことがあるかと思います。
今回はその方法を詳細に記述しました。
-
- バックアップをとる
私はUpdraftPlusというプラグインを使っています。 - Code Snippetsプラグインでfunction.phpを編集する
以下のcodeをCode Snippetsにコピー&ペーストして有効化すればfunction.phpに追記されることになり、OK。
// add 3.6% fee in case Paypal payment
add_filter('usces_filter_getCODFee', 'my_filter_getCODFee', 10, 3);
function my_filter_getCODFee($fee, $payment_name, $amount_by_cod){
global $usces_entries;
global $usces;
$total_items_price = $usces->get_total_price(); // we cannot use $usces_entries[‘order’][‘total_items_price’] because sometimes it has not set yet.
if($payment_name == "PayPal"){
if($total_items_price > 10000000){
$fee = $total_items_price * 0.029;
} elseif ($total_items_price > 1000000){
$fee = $total_items_price * 0.032;
} elseif ($total_items_price > 300000){
$fee = $total_items_price * 0.034;
} else {
$fee = $total_items_price * 0.036;
}
}
return $fee;
}// output fee name in case PayPal payment
add_filter('usces_filter_cod_label', 'my_filter_cod_label', 10, 1);
function my_filter_cod_label(){
global $usces_entries;
if($usces_entries['order']['payment_name'] == "PayPal"){
$text = "PayPal手数料";
} else {
$text = __('COD fee', 'usces');
}
return $text;
}// print PayPal fee in a thankyou mail
add_filter('usces_filter_order_confirm_mail_meisai', 'my_order_confirm_mail_meisai', 10, 3);
function my_order_confirm_mail_meisai($meisai, $data, $cart){
if($data[order_payment_name] == "PayPal払い"){
$meisai .= "※上記お支払い金額にはPayPal払い手数料(" . usces_crform( $data['order_cod_fee'], true, false, 'return' ) . ")が含まれております。\r\n";
}
return $meisai;
}
参考 代引き以外の支払方法で手数料を設定する方法
paypal手数料の上乗せについて実はfunction.phpの編集は、以下の注のように色々試したのですがうまく行かず、結局このCode Snippetsというプラグインを使う方法なら一発でうまくいきました。
参考 WordPressでfunctions.phpファイルを編集する方法
注1) function.phpに
locate_template('inc/myfunc.php');
などとincludeしても、なぜか手数料は有効になりませんでした。
注2) function.phpを直接編集しても、手数料が有効になりませんでした。function.phpの最後に書き足したのがだめだったのかもしれませんが、よくわかりません。
注3) 子テーマを作成するとstyleが崩れてしまいました。一応style.cssと同じ階層にある.cssファイル全てを、wp_enqueue_style()を使って依存関係を書いたのですが。しかし、どうやら最近では、子テーマを作成するのはあまりおすすめの方法ではないようです。
参考 WordPress 子テーマは CSS 変更でデザイン修正するだけなら作成不要 - バックアップをとる
これで、PayPal支払いのときにPayPal規定の手数料を取るようにできました。
…がしかし!実際やってみると罠が!
welcartでPayPal支払いを設定すると、PayPalショートカットボタンが自動で作られる仕様になっており、カートの中を確認した時点でこのボタンが現れます。そして、その時点でこのショートカットボタンを押すと、設定した手数料が加算されません!これでは手数料が加算されない抜け道になってしまいます。
うーん、次回はこの問題を解決しましょう。
(解決方法はこちら)
それではまた。Chiao!