解決済登録しているSKU価格を、カート内で表示させたい

フォーラム 拡張プラグイン 【解決済】登録しているSKU価格を、カート内で表示させたい

  • このトピックには4件の返信、2人の参加者があり、最後にstarにより2年、 7ヶ月前に更新されました。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #94936
    star
    参加者

    ——————————————-
    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

    というエラーも表示されてしまいます。

    #94938
    sagawa
    キーマスター

    こんにちは。

    最初にご確認いただきたいのですが、ご自身で行ったカスタマイズの記述を元に戻すと、このエラーは出ないという事でお間違えないでしょうか?
    ※カスタマイズを元に戻しても出るのであれば、他に原因がありますので、最初にご確認下さい。

    usces_get_cart_rows()のフックで、
    get_realprice($post_id, $sku, $quantity, $price);
    を使うと、SKU価格が表示はされる

    意図するSKU価格が取得出来ているとのことですので、後はエラーを解決するだけという事でよろしいでしょうか?
    usces_get_cart_rows()内のどのフックを使って、どのように記述されているかわかりませんが、記載されているエラー内容を見る限り、対象箇所の引数に配列ではなくbool値が渡されているエラーとなっています。
    再度、ご自身の記述内を見返していただけますでしょうか?

    #94943
    star
    参加者

    ご返信ありがとうございます。

    自身で行ったカスタマイズの記述を元に戻すと、エラーは出ません。

    ご指摘の通り、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価格がエラーなく取得できました。

    #94944
    sagawa
    キーマスター

    star様

    ここでは、カスタマイズのレクチャは行っておりませんので、詳細をお教えすることはできませんが、
    usces_filter_realpriceフックはWCEX Multi Priceプラグイン内で使用しておりますため、影響が出る可能性があります。
    WCEX Multi Priceプラグインをご利用されているようでしたので、影響範囲をご確認いただきながらカスタマイズをしていただければと存じます。
    ご自身でのカスタマイズが難しい場合は、WelCustomより、ご依頼いただければと思います。

    #94945
    star
    参加者

    sagawa様

    不具合の可能性、承知いたしました。注意しながら進めていきたいと思います。何かあれば依頼させていただきます。ありがとうございました。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。