Welcartでカートに入っている商品の合計数を出力するカスタマイズ

カートに入れている商品の合計数を記載したい場合のカスタマイズ方法です。

Sponsored Link

オンラインショップで、常にカートに入れた商品数と値段の合計数を表示したかったので、
まずは、商品数の合計を出すカスタマイズをしました。

もしかしたら、Welcartで商品数の合計を出す独自テンプレートタグがあるかもしれません。

function.phpに下記を記載する。

function usces_get_item_conut() {
	global $usces;
	$cart = $usces->cart->get_cart();
	$itemconut = 0;

	for($i=0; $i<count($cart); $i++) { 
		$cart_row = $cart&#91;$i&#93;;
		$itemconut += esc_attr($cart_row&#91;'quantity'&#93;);
		}
	echo $itemconut;
}&#91;/php&#93;

挿入したい部分に下記のソースを記載する。
&#91;php&#93;<?php usces_get_item_conut(); ?>

表示例です。
商品の合計数を表示するカスタマイズ例

/functions/template.func.phpファイルの2606行目のusces_get_confirm_rows関数を参考にしてカスタマイズしました。

function usces_get_confirm_rows( $out = '' ) {
	global $usces, $usces_members, $usces_entries;
//	$usces_members = $usces->get_member();
	$memid = ( empty($usces_members['ID']) ) ? 999999999 : $usces_members['ID'];
//	$usces_entries = $usces->cart->get_entry();
	$usces->set_cart_fees( $usces_members, $usces_entries );
	$usces_entries = $usces->cart->get_entry();
	
	$cart = $usces->cart->get_cart();
	$res = '';
	for($i=0; $i<count($cart); $i++) { 
		$cart_row = $cart&#91;$i&#93;;
		$post_id = $cart_row&#91;'post_id'&#93;;
		$sku = esc_attr($cart_row&#91;'sku'&#93;);
		$sku_code = esc_attr(urldecode($cart_row&#91;'sku'&#93;));
		$quantity = $cart_row&#91;'quantity'&#93;;
		$options = $cart_row&#91;'options'&#93;;
		$itemCode = $usces->getItemCode($post_id);
		$itemName = $usces->getItemName($post_id);
		$cartItemName = $usces->getCartItemName($post_id, $sku_code);
		$skuPrice = $cart_row['price'];
		$pictid = $usces->get_mainpictid($itemCode);
		$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">' . $cartItemName . '<br />';
		if( is_array($options) &amp;&amp; count($options) > 0 ){
			$optstr = '';
			foreach($options as $key => $value){
//20110629ysk start 0000190
				//if( !empty($key) )
				//	 $row .= esc_html($key) . ' : ' . nl2br(esc_html(urldecode($value))) . "<br />\n"; 
				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"; 
					}
				}
//20110629ysk end
			}
			$row .= apply_filters( 'usces_filter_option_confirm', $optstr, $options);
		}
		$row .= '</td>
			<td class="aright">' . usces_crform($skuPrice, true, false, 'return') . '</td>
			<td>' . $cart_row['quantity'] . '</td>
			<td class="aright">' . usces_crform(($skuPrice * $cart_row['quantity']), true, false, 'return') . '</td>
			<td>';
		$res = apply_filters('usces_additional_confirm',  $res, array($i, $post_id, $sku_code));
		$row .= '</td>
		</tr>';
		
		$materials = compact('i', 'cart_row', 'post_id', 'sku', 'sku_code', 'quantity', 'options', 
						'itemCode', 'itemName', 'cartItemName', 'skuPrice', 'pictid');
		$res .= apply_filters( 'usces_filter_confirm_row', $row, $cart, $materials);
	} 
	
	$res = apply_filters( 'usces_filter_confirm_rows', $res, $cart);

	if($out == 'return'){
		return $res;
	}else{
		echo $res;
	}
}
Sponsored Link