Welcart1.0βを解析する(wc_cart_page.php編)
Welcart1.0であらたに仕様が変わったwc_templates機能。
前回は商品詳細ページでしたが、今回はカートの中身を表示するページを解析していきます。
前回と比べてかなりシンプルでカスタマイズも割としやすいと思います。
詳細ページと比べてカスタマイズするタイミングがあまりありませんがw
<?php /** * <meta content="charset=UTF-8"> * @package Welcart * @subpackage Welcart Default Theme */ get_header(); get_sidebar( 'cartmember' ); ?> <div id="content" class="two-column"> <div class="catbox"> <?php if (have_posts()) : usces_remove_filter(); ?> <div class="post" id="wc_<?php usces_page_name(); ?>"> <h1 class="cart_page_title"><?php _e('In the cart', 'usces'); ?></h1> <div class="entry"> <div id="inside-cart"> <div class="usccart_navi"> <ol class="ucart"> <li class="ucart usccart usccart_cart"><?php _e('1.Cart','usces'); ?></li> <li class="ucart usccustomer"><?php _e('2.Customer Info','usces'); ?></li> <li class="ucart uscdelivery"><?php _e('3.Deli. & Pay.','usces'); ?></li> <li class="ucart uscconfirm"><?php _e('4.Confirm','usces'); ?></li> </ol> </div> <div class="header_explanation"> <?php do_action('usces_action_cart_page_header'); ?> </div>
15行目 Welcartに本来かかっているフィルターを取り除きます。Wc-templatesで作るには必須のようです。
24-31行目 カート上部に表示されるナビゲーションメニュー
33-35行目 ナビゲーションとカートの中身表示の間にアクションフックusces_action_cart_page_header
<div class="error_message"><?php usces_error_message(); ?></div> <form action="<?php usces_url('cart'); ?>" method="post" onKeyDown="if (event.keyCode == 13) {return false;}"> <?php if( usces_is_cart() ) : ?> <div id="cart"> <div class="upbutton"><?php _e('Press the `update` button when you change the amount of items.','usces'); ?><input name="upButton" type="submit" value="<?php _e('Quantity renewal','usces'); ?>" onclick="return uscesCart.upCart()" /></div> <table cellspacing="0" id="cart_table"> <thead> <tr> <th scope="row" class="num">No.</th> <th class="thumbnail"> </th> <th><?php _e('item name','usces'); ?></th> <th class="quantity"><?php _e('Unit price','usces'); ?></th> <th class="quantity"><?php _e('Quantity','usces'); ?></th> <th class="subtotal"><?php _e('Amount','usces'); ?><?php usces_guid_tax(); ?></th> <th class="stock"><?php _e('stock status','usces'); ?></th> <th class="action"> </th> </tr> </thead> <tbody> <?php usces_get_cart_rows(); ?> </tbody> <tfoot> <tr> <th colspan="5" scope="row" class="aright"><?php _e('total items','usces'); ?><?php usces_guid_tax(); ?></th> <th class="aright"><?php usces_crform(usces_total_price('return'), true, false); ?></th> <th colspan="2"> </th> </tr> </tfoot> </table> <div class="currency_code"><?php _e('Currency','usces'); ?> : <?php usces_crcode(); ?></div> <?php if( $usces_gp ) : ?> <img src="<?php bloginfo('template_directory'); ?>/images/gp.gif" alt="<?php _e('Business package discount','usces'); ?>" /><br /><?php _e('The price with this mark applys to Business pack discount.','usces'); ?> <?php endif; ?> </div><!-- end of cart --> <?php else : ?> <div class="no_cart"><?php _e('There are no items in your cart.','usces'); ?></div> <?php endif; ?> <?php the_content();?> <div class="send"><?php usces_get_cart_button(); ?></div> <?php do_action('usces_action_cart_page_inform'); ?> </form>
37行目 エラーメッセージがある場合ここに出力される。
39行目 if( usces_is_cart() ) カートに中身がある場合の処理
42行目 更新ボタンと、更新ボタンのメッセージ
57行目 usces_get_cart_rows() カートの中身をテーブルで出力
62行目 usces_crform(usces_total_price(‘return’), true, false)
usces_total_price()合計金額の表示
usces_crform($float,$symbol_pre,$symbol_post)
カンマ区切りで整形した$floatの値をの前後に通貨マークを付けて表示
*symbol_pre=Trueで前に、日本だと¥
*symbol_post=Trueで後ろに、日本だと円
が表示されます。
67行目 usces_crcode() 使用通貨を表示
68行目 $usces_gp業務パック割引適用商品があるかチェック
69行目 業務パック割引き表品があった場合メッセージを表記
79行目 usces_get_cart_button 次へ進むと戻るのボタンを表示
80行目 フォームの最後に追加するアクションフックusces_action_cart_page_informを追加
<div class="footer_explanation"> <?php do_action('usces_action_cart_page_footer'); ?> </div> </div><!-- end of inside-cart --> </div><!-- end of entry --> </div><!-- end of post --> <?php else: ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> <?php endif; ?> </div><!-- end of catbox --> </div><!-- end of content --> <?php get_footer(); ?>
109行目 フッターに追加するアクションフックusces_action_cart_page_footerを追加
以上です。依然と比べて直接テンプレートの編集がしやすくなったのでテンプレート内のフックが少し浮いて感じますね。
このテンプレートのポイントは新しく追加されたusces_crform関数でしょうか。
これのおかげで通貨の国際化が容易にできるようです。