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

2014 年 12 月 4 日

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

このトピックには4件の返信が含まれ、2人の参加者がいます。2 年、 9 ヶ月前 hiranot さんが最後の更新を行いました。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #72956

    hiranot
    参加者

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

    Attachments:
    You must be logged in to view attached files.
    #72974

    nanbu
    参加者

    こんにちは。

    テンプレートで数量フィールドを出力しているテンプレートタグは、< ?php usces_the_itemQuant(); ?>です。これをセレクトに書き換えればよい訳ですが、商品の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件中)

このトピックに返信するにはログインが必要です。