カートページでの数量変更をプルダウンにて行う。

フォーラム 使い方全般 カートページでの数量変更をプルダウンにて行う。

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

    カートページでの数量変更をプルダウン操作にてより簡潔に行えるようにする方法等ありますでしょうか?添付画像のようなイメージです。

    Attachments:
    You must be logged in to view attached files.
    #72974
    nanbu
    キーマスター

    こんにちは。

    テンプレートで数量フィールドを出力しているテンプレートタグは、です。これをセレクトに書き換えればよい訳ですが、商品のpost_idとSKUコードを渡さなくてはいけないので、ちょっと厄介です。
    実際にはこの様になるかと思います。

    
    <select name="quant[<?php echo $post->ID; ?>][<?php echo urlencode(usces_the_itemSku('return')); ?>]" >
    
    #73034
    hiranot
    参加者

    ——————————————-
    WordPress のバージョン:WordPress 4.0.1
    Welcart のバージョン:1.4.12
    ご利用のテーマ:オリジナル
    症状を確認したブラウザ:Chrome
    サーバー(会社名、サービス名):lolipop
    SSLの利用: 無し
    WordPress のパーマリンク設定:
    ——————————————–

    お世話になっております。返信ありがとうございました。
    下記コード中の以下の箇所を書き換えてみましたが出来ませんでした。
    どのように頂いたコードを記述すれば良いか、ご教授いただければ幸いです。

    ■書き換えた箇所
    <td><input name=”quant[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘]” class=”quantity” type=”text” value=”‘ . esc_attr($cart_row[‘quantity’]) . ‘” /></td>

    ■コード
    /* カートページ ************/
    add_filter( ‘usces_filter_cart_row’, ‘my_filter_cart_row’, 10, 3);
    function my_filter_cart_row($row, $cart, $materials){
    extract($materials);
    $row = ”;
    if ( empty($options) ) {
    $optstr = ”;
    $options = array();
    }
    $row .= ‘<tr>
    <td>’ . ($i + 1) . ‘</td>
    <td>’;
    $cart_thumbnail = ‘‘ . wp_get_attachment_image( $pictid, array(60, 60), true ) . ‘‘;
    $row .= apply_filters(‘usces_filter_cart_thumbnail’, $cart_thumbnail, $post_id, $pictid, $i,$cart_row);
    $row .= ‘</td><td class=”aleft”>’ . esc_html($cartItemName) . ‘<br />’;
    if( is_array($options) && count($options) > 0 ){
    $optstr = ”;
    foreach($options as $key => $value){
    if( !empty($key) ) {
    $key = urldecode($key);
    if(is_array($value)) {
    $c = ”;
    $optstr .= esc_html($key) . ‘ : ‘;
    foreach($value as $v) {
    $optstr .= $c.nl2br(esc_html(urldecode($v)));
    $c = ‘, ‘;
    }
    $optstr .= “<br />\n”;
    } else {
    $optstr .= esc_html($key) . ‘ : ‘ . nl2br(esc_html(urldecode($value))) . “<br />\n”;
    }
    }
    }
    $row .= apply_filters( ‘usces_filter_option_cart’, $optstr, $options);
    }
    $row .= ‘</td>
    <td class=”aright”>’;
    if( usces_is_gptekiyo($post_id, $sku_code, $quantity) ) {
    $usces_gp = 1;
    $Business_pack_mark = ‘' . __('Business package discount','usces') . '<br />’;
    $row .= apply_filters(‘usces_filter_itemGpExp_cart_mark’, $Business_pack_mark);
    }
    $row .= usces_crform($skuPrice, true, false, ‘return’) . ‘
    </td>
    <td><input name=”quant[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘]” class=”quantity” type=”text” value=”‘ . esc_attr($cart_row[‘quantity’]) . ‘” /></td>
    <td class=”aright”>’ . usces_crform(($skuPrice * $cart_row[‘quantity’]), true, false, ‘return’) . ‘</td>
    <td>’;
    foreach($options as $key => $value){
    if(is_array($value)) {
    foreach($value as $v) {
    $row .= ‘<input name=”itemOption[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘][‘ . $key . ‘][‘ . $v . ‘]” type=”hidden” value=”‘ . $v . ‘” />’;
    }
    } else {
    $row .= ‘<input name=”itemOption[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘][‘ . $key . ‘]” type=”hidden” value=”‘ . $value . ‘” />’;
    }
    }
    $row .= ‘<input name=”itemRestriction[‘ . $i . ‘]” type=”hidden” value=”‘ . $itemRestriction . ‘” />
    <input name=”stockid[‘ . $i . ‘]” type=”hidden” value=”‘ . $stockid . ‘” />
    <input name=”itempostid[‘ . $i . ‘]” type=”hidden” value=”‘ . $post_id . ‘” />
    <input name=”itemsku[‘ . $i . ‘]” type=”hidden” value=”‘ . $sku . ‘” />
    <input name=”zaikonum[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘]” type=”hidden” value=”‘ . esc_attr($skuZaikonum) . ‘” />
    <input name=”skuPrice[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘]” type=”hidden” value=”‘ . esc_attr($skuPrice) . ‘” />
    <input name=”advance[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘]” type=”hidden” value=”‘ . esc_attr($advance) . ‘” />
    <input name=”delButton[‘ . $i . ‘][‘ . $post_id . ‘][‘ . $sku . ‘]” class=”delButton” type=”submit” value=”‘ . __(‘Delete’,’usces’) . ‘” />
    </td>
    </tr>’;

    return $row;
    }

    #73053
    nanbu
    キーマスター

    大変失礼いたしました。商品詳細ページと勘違いをしておりました。

    そのユーザー関数内の

    
    <input name="quant[' . $i . '][' . $post_id . '][' . $sku . ']" class="quantity" type="text" value="' . esc_attr($cart_row['quantity']) . '" />
    

    の部分に当たります。

    
    <select name="quant[' . $i . '][' . $post_id . '][' . $sku . ']" class="quantity"  />
    

    とし、optionタグを置いて行くことになります。

    ※このフォーラムの記事でソースコードを書くときは、バックティック(`)で括るとちゃんとエスケープされて表示されます。

    #73071
    hiranot
    参加者

    度々、申し訳ありません。
    商品の在庫数を取得して表示したいのですが、optionタグ内にどのようにすれば記述すれば良いでしょうか。商品在庫が3個ならプルダウンにて1〜3を選択出来るというように出来ればと考えています。
    また、プルダウンにて数量を変更した時に自動で金額を再計算するというようにしたいのですが可能でしょうか。
    お手数おかけしますがご教示のほど、よろしくお願いいたします。

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