Honmaru Manual

   

【Welcartカスタマイズ】Welcart商品用のアーカイブページを作る(PHP/上級者向け)

25 1月 17
北川 哲平
,
No Comments
※この記事で解説する方法では、FTPソフト等でファイルをアップロードする環境が必要です。
※既存のテンプレートファイルを変更するので、子テーマの利用をお勧めします。

通常のアーカイブページに、価格等の情報を加える

商品一覧は、「商品」のカテゴリー専用アーカイブページを開くと表示されます。
(例:httpss://sample.com/category/item/ 等)
しかし、Welcart向けでない既存のテーマを使っている場合、ここに価格などの情報は表示されません。

なので、価格を表示させるためのカスタマイズを行います。

【今回利用するファイル】
wp-contnt/themes/<現在使用中のテーマ名>/category.php
または
wp-contnt/themes/<現在使用中のテーマ名>/index.php

1. 使用テーマの「category.php」又は「index.php」をダウンロードするか、【左サイドバー>外観>テーマの編集】の右エリアから選択します。

2. (1)のファイルを開き、「the_content();」と記述されている場所を探します。
※ テーマによって「the_content(‘more’);」等、括弧内に記述がある場合もあるので、検索するときは「the_content」と記号抜きで探して下さい。
※「the_content();」の記述が無いときは、「get_template_part」という記述を探して下さい。(詳細はこちら)

3. 以下の内容と(2)の部分を差し替えます。

<?php if ( usces_is_item() ) : //以下、商品がある場合 ?>

商品名  :<?php usces_the_itemName(); ?><br>
商品コード:<?php usces_the_itemCode(); ?><br>
<br>

<?php while (usces_have_skus()): //SKUの数だけその情報を呼び出します ?>

SKU名 :<?php usces_the_itemSkuDisp(); ?><br>
SKUコード:<?php usces_the_itemSku(); ?><br>
価格 :<?php usces_the_itemCprice(); ?>円<?php usces_guid_tax(); ?><br>
売値 :<?php usces_the_itemPrice() ; ?>円<?php usces_guid_tax(); ?><br>

<?php
break; //SKUを1回呼び出したら終了します。
endwhile; //SKU情報呼び出しを終了します。
?>

<br>
抜粋   :<?php echo $post->post_excerpt; ?><br>
画像   :<?php usces_the_itemImage(0, 150, 150); //’0’の数値を増やすことで、サブ画像を表示できます ?><br>
画像URL  :<?php usces_the_itemImageURL(0); //’0’の数値を増やすことで、サブ画像のURLを取得します ?><br>
本文   :<?php echo do_shortcode($post->post_content); ?><br>
<br>
<a href=”<?php the_permalink(); ?>#itempage”>購入はこちら</a>

<?php else : //以下、商品が無い場合 ?>

<?php the_content(); //(2)で探し出した「the_content();」の記述をそのままコピーするのが好ましいです ?>

<?php endif; //商品が無い場合:終了 ?>

価格以外にも、一通りの独自タグを掲載しました。
取捨選択してご利用下さい。

※SKU名・SKUコード・価格・売値は、の間でのみ取得することが出来ます。
正しくは、以下のコードの【この部分にSKU用 情報取得タグ】部分にのみ入れて下さい。

<?php while (usces_have_skus()): //SKUの数だけその情報を呼び出します ?>
【この部分にSKU用 情報取得タグ】
<?php
break; //SKUを1回呼び出したら終了します。
endwhile; //SKU情報呼び出しを終了します。
?>

通常のアーカイブページに、カートボタンも付ける

今度は、商品一覧ページに表示された個々の商品に、カートボタンを設置してみます。

前回の(3)においてコピペするコードに、以下のものを追加します。

<!– 購入ボタン・ここから –>
<?php if( usces_have_zaiko() ) ://在庫がある場合 ?>
<?php if(usces_sku_num()==1)://SKUが1つの場合 ?>
<form action=”<?php echo USCES_CART_URL; ?>” method=”post”>
<?php if (usces_is_options()) ://オプションを表示 ?>
オプション名:セレクト値<br>
<?php while (usces_have_options()) : ?>
<?php usces_the_itemOptName(); ?>:<?php usces_the_itemOption(usces_getItemOptName(),’ ‘); ?><br>
<?php endwhile; ?>
<?php endif;//オプションここまで ?>
購入ボタン:<?php _e(‘Quantity’, ‘usces’); ?><?php usces_the_itemQuant(); ?><?php usces_the_itemSkuUnit(); ?><?php usces_the_itemSkuButton(__(‘Add to Shopping Cart’, ‘usces’), 0); ?>
<?php echo apply_filters(‘single_item_multi_sku_after_field’, NULL); ?>
<?php do_action(‘usces_action_single_item_inform’); ?>
<?php usces_the_itemGpExp(); ?>
</form>
<?php else://SKUが2つ以上ある場合 ?>
<a href=”<?php the_permalink(); ?>#itempage”>購入はこちら</a><br>
<?php endif; //在庫があるかの分岐:終了 ?>
<?php endif; //SKUが1つか2つかの分岐:終了 ?>
<!– 購入ボタン・ここまで –>

上記のコードを、前回SKU名・SKUコード等のSKU情報を入れた場所に入れて下さい。

※商品ボタンは、商品登録の際にSKUを1つのみ登録している場合のみ表示しています。
これは、商品一件に対し【カートボタン】をひとつのみ表示するという体裁をとるためです。

※全てのSKUのカートボタンを表示させたい時は、【break; //SKUを1回呼び出したら終了します。】という行を削除してください。