解決済登録しているSKU価格を、カート内で表示させたい
-
投稿者投稿
-
2021年9月3日 1:40 AM #94936star参加者
——————————————-
WordPress のバージョン:5.8
Welcart のバージョン:2.3.1
PHP のバージョン:7.4
Welcart専用の拡張プラグインとバージョン:WCEX Multi Price 1.2.0
ご利用のテーマ:WelcartBasic の自作子テーマ
症状を確認したブラウザ:Chrome Firefox
サーバー【重要】:Xserver 旧X2スタンダード
——————————————–お世話になります。
色々調べて試してみましたが、力及ばず、お尋ねさせていただきます。——————————————–
多数の共通オプションを、マルチプライスにて価格設定しております。
カート内で表示される金額は、マルチプライスで設定した価格と、SKU価格が合計された金額が、単価として表示されます。
選択された共通オプションの金額を加算する前の、SKU価格のみを、カート内で取得して表示させる方法をご教示いただけないでしょうか。
usces_get_cart_rows()のフックで、
get_realprice($post_id, $sku, $quantity, $price);
を使うと、SKU価格が表示はされるのですが、
Warning: array_keys() expects parameter 1 to be array, bool given in—-/wp-content/plugins/usc-e-shop/classes/cart.class.php on line 288
というエラーも表示されてしまいます。
2021年9月3日 9:44 AM #94938sagawaキーマスターこんにちは。
最初にご確認いただきたいのですが、ご自身で行ったカスタマイズの記述を元に戻すと、このエラーは出ないという事でお間違えないでしょうか?
※カスタマイズを元に戻しても出るのであれば、他に原因がありますので、最初にご確認下さい。usces_get_cart_rows()のフックで、
get_realprice($post_id, $sku, $quantity, $price);
を使うと、SKU価格が表示はされる意図するSKU価格が取得出来ているとのことですので、後はエラーを解決するだけという事でよろしいでしょうか?
usces_get_cart_rows()
内のどのフックを使って、どのように記述されているかわかりませんが、記載されているエラー内容を見る限り、対象箇所の引数に配列ではなくbool値が渡されているエラーとなっています。
再度、ご自身の記述内を見返していただけますでしょうか?2021年9月3日 4:40 PM #94943star参加者ご返信ありがとうございます。
自身で行ったカスタマイズの記述を元に戻すと、エラーは出ません。
ご指摘の通り、SKう価格は取得出来ているようなのですが、「第一パラメーターが配列ではない」エラーが消えれば解決されます。
———————————
色々試したところ、解決しました。
ただ、私の知識ではその理由と、そもそも正しいのかも分かり兼ねるので、補足いただいて他の方に参考になれば幸いです。
エラーの元になっていたのは、
cart.class.phpに記述されている、get_realprice()のfunction内の、usces_filter_realpriceというフックでした。
usces_filter_realpriceフックを削除したところ、get_realprice()でSKU価格をカート内で取得ができました。
function get_realprice($post_id, $sku, $quant, $price = NULL, &$unit_price = null) {
global $usces;
$sku = urldecode($sku);
$skus = $usces->get_skus( $post_id, ‘code’ );if($price === NULL) {
$p = isset($skus[$sku][‘price’]) ? $skus[$sku][‘price’] : ”;
} else {
$unit_price = $price;
}
if( isset($skus[$sku][‘price’]) && !$skus[$sku][‘gp’] ) return $p;$realprice = usces_get_gp_price($post_id, $p, $quant);
return $realprice;
}cart.class.phpを直接編集することは不都合なので、上記の関数ごとfunction.phpに記載したらget_realpriceがエラーを吐くことなく、機能いたしました(表面上は)。
get_realprice($post_id, $sku, $quantity, $realprice);
にてSKU価格がエラーなく取得できました。
2021年9月6日 10:00 AM #94944sagawaキーマスターstar様
ここでは、カスタマイズのレクチャは行っておりませんので、詳細をお教えすることはできませんが、
usces_filter_realprice
フックはWCEX Multi Priceプラグイン内で使用しておりますため、影響が出る可能性があります。
WCEX Multi Priceプラグインをご利用されているようでしたので、影響範囲をご確認いただきながらカスタマイズをしていただければと存じます。
ご自身でのカスタマイズが難しい場合は、WelCustomより、ご依頼いただければと思います。2021年9月6日 11:35 AM #94945star参加者sagawa様
不具合の可能性、承知いたしました。注意しながら進めていきたいと思います。何かあれば依頼させていただきます。ありがとうございました。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。