HOME  /Welcart
 /Welcart_basicの制限解除と必要な関数の作成
2020年11月10日

Welcart_basicの制限解除と必要な関数の作成


Welcart_basicのデザインを自由な形に変更する為には、下記の様なWelcartの制限を解除したり、デザイン作成のために必要な判断関数等を作成する必要があります。

1.検索機能の制限を解除する

2.総ての「Font Awesome」アイコンフォントを利用可能にする

3.カテゴリが商品か否かの判断関数の作成

4.最上位カテゴリの取得関数の作成

5.商品カテゴリの取得関数の作成

1.検索機能の制限を解除する

1-1.検索機能の制限

Welcart_basicは、投稿ページで「商品」と「ブログ」を保持している関係で、検索機能を「item」に限定しています。

制限の詳細は Welcartの投稿ページの構造と検索機能制限を参照してください。

 

1-2.welcart_basic_query関数のリムーブ方法

上記の関数をリムーブする為には「remove_action」を子テーマの「functipons.php」に記述します。

ここでは下記の様な構造で、リムーブファンクションを記述しています。

①functions.phpへの記述

/* welcartの検索機能の制限を解除 */
	get_template_part('func/welcart/setting/remove_welcart_query');

②func¥welcart¥settiong¥remove_welcart_query.phpへの記述

<?php 
/*****************************************************************************
Welcartは、queryをitemに限定する設定をfunctions.phpに記述している。
ここでこの機能をリムーブする。
*******************************************************************************/
function remove_welcart_query(){
	remove_action('pre_get_posts', 'welcart_basic_query');
}
add_action('after_setup_theme', 'remove_welcart_query' );

?>

■親テーマの関数の削除は「remove_action()」で行う。
第一引数:除去する関数がフックしているアクションフック名:pre_get_posts
第二引数:除去する関数名:welcart_basic_query

■アクション名で「after_setup_theme」を指定する事により、親テーマがロードされた後にこの関数を実施する。

以上で検索機能のitem限定は解除されたので、後は自由に検索フォームを作る事になります。

 

2.総ての「Font Awesome」アイコンフォントを利用可能にする

Font Awesomeはアイコンフォントの提供サイトです。

Font Awesomeのサイト

Welcart_bascでは、この「Font Awesome」のアイコンをダウンロードして使える様にしていますが、総ての無料アイコンを取り込んでいる訳ではありません。

しかしサイトを色々カスタマイズしていくためには、総ての「Font Awesome」アイコンフォントが利用できると便利です。

また「Font Awesome」には「バージョン5」と「バージョン6」があります。

バージョン5の時はCDNを記述するだけで利用できましたが、バージョン6からはユーザ登録すると個人に割り当てられたCDNが作られ、これを記述する方法に変わるみたいです。

 

2-1.Font Awesome 5を利用する場合

 Welcart_Basicの子テーマを作成する

上記で設定した「theme_setting.php」のCSSの所に下記を追加します。

wp_enqueue_style('fontawesome',"https://use.fontawesome.com/releases/v5.6.1/css/all.css");//fontawesome

■以上で「Font Awesome」の無料アイコンが総て使える様になります。

 

2-2.Font Awesome 6を利用する場合

「Font Awesome 6」の場合は「Font Awesome」サイトに貴方のメールアドレスを入力するとメールが送られてきます。

そのメールからユーザ登録をすると、個人用のCDNが作成されます。

このCDNを「theme_setting.php」のスクリプトの所に追加します。

wp_enqueue_script('fontawesome',"https://kit.fontawesome.com/✖✖✖✖.js");// fontawesomeライブラリ

■送られてくるCDNは「CSS」でなく「js」ファイルです。

■✖✖✖✖の所は、個人用IDが入ります。

 メモ

Ver6でユーザ登録すると、有償版へのお誘いのメールが何回も来ます。

よってお勧めはVer5です。

 

3.カテゴリが商品か否かの判断関数の作成

Welcart_basicでは、カテゴリが商品か否か?を判断する関数として「uses_is_item()」という関数を用意してくれている事になっていますが見つかりません。

そこで「商品か否か?を判断する関数」を作成します。

①functions.phpへの記述

/* welcartの商品か否かの判断関数の追加 */
	get_template_part('func/welcart/setting/is_my_item');

 

②func¥welcart¥settiong¥is_my_item.phpの作成

上記ファイルに下記プログラムが入ります。

<?php 
/*****************************************************************************
カテゴリが商品か否かを判断する関数
商品の場合はtrue、それ以外はfalseを返す
******************************************************************************/
function is_my_item(){
	$categories = get_the_category($post->ID);
	if(!$categories){return false;}            /* カテゴリが取得できない(文書がない)場合は終了 */
	$cat=$categories[0];
	$cat_id=$cat -> cat_ID;
	$parents=get_category_parents($cat_id,false,',',true);
	$parents=explode( ',', $parents );
	$ancestor=$parents[0];
	if($ancestor == 'item'){return true;}/* 商品 */
	else{return false;}                           /* 商品以外 */
}
?>

■ドキュメント作成で複数のカテゴリにチェックを入れると、指定した数だけカテゴリ情報が登録されます。
get_the_category($post->ID);は設定されている総てのカテゴリ情報を取得します。

■$cat=$categories[0];は、取得したカテゴリから初め(0番目)の情報を取り出しています。

■取り出したカテゴリ情報の中にはカテゴリに関する色々な情報があります。$cat_id=$cat -> cat_ID;は、その中でカテゴリIDだけを取り出し$cat_idにセットしています。

get_category_parentsは、指定したカテゴリIDの親を順次呼び出して文字列として取り出す関数です。

explodeは$parentsの内容を「,」で分割した文字列の配列を返します。よってその配列の0番目が最上位のカテゴリになります。

■最上位のカテゴリが「item」の場合はtrue、それ以外はカテゴリのスラッグを返します。

 

4.最上位カテゴリの取得関数の作成

現在、表示されているページの最上位カテゴリが「製品」か「ブログ」または「お知らせ」かが判ると何を表示すべきか?が判断ができます。

そこで「最上位カテゴリの取得関数」を作成します。

①functions.phpへの記述

/* 最上位のカテゴリ情報の取得関数 */
	get_template_part('func/welcart/setting/get_my_categoly');

 

②func¥welcart¥settiong¥get_my_categoly.phpの作成

上記ファイルに下記プログラムが入ります。

<?php 
/*****************************************************************************
最上位のカテゴリ情報を返す関数
受け取る方法:list($slug,$name) = get_my_category();
******************************************************************************/
function get_my_category(){
	$categories = get_the_category($post->ID);
	if(!$categories){return false;}/* カテゴリが取得できない(文書がない)場合は終了 */
	
    $first_cat = $categories[0];
	$first_cat_id = $first_cat -> cat_ID;
	$slugs = get_category_parents($first_cat_id,false,',',true);
	$slugs = explode( ',', $slugs );
	$slug = $slugs[0];
	$cat_info = get_category_by_slug($slug);
	$name = $cat_info -> name;
	return array($slug,$name);
}
?>

■プログラム構造は「is_my_item」とほぼ同じですが、取得したスラッグを使って「get_category_by_slug」でカテゴリの名前を取得しています。

■戻り値は、連想配列で「$slug」と「$name」を返します。

■関数の呼び出し側で連想配列を受け取る方法は下記になります。

list($slug,$name) = get_my_category();

以上で、現在のページの最上位の「カテゴリ名」と「スラッグ」を取得する事ができる関数が完成しました。

 

5.商品カテゴリの取得関数の作成

現在表示されている商品の商品カテゴリが判ると、関連製品等を抽出する事が可能となります。

そこで「最上位カテゴリの取得関数」を作成しますが、Welcartの商品カテゴリが登録されている事が前提となります。

①functions.phpへの記述

/* 商品カテゴリ情報の取得関数 */
	get_template_part('func/welcart/setting/get_my_itemgenre');

 

②func¥welcart¥settiong¥get_my_itemgenre.phpの作成

上記ファイルに下記プログラムが入ります。

<?php 
/*****************************************************************************
商品ページの時に、商品カテゴリ情報を取得する関数
使い方:list($slug,$name) = get_my_itemgenre();
******************************************************************************/
function get_my_itemgenre(){
	$categories = get_the_category($post->ID);
	if(!$categories | !is_single()){return array('','');}/* カテゴリが存在しない、商品ページでない場合は終了 */

	foreach( $categories as $cat ) {
  	if( $cat->parent == 5 ) {return array( $cat->slug,$cat->name );}
  }
}
?>

■「get_the_category($post->ID)」は複数個のカテゴリ情報を一括で取得する関数です。

■それを「foreach」で1個づつ呼び出し、「$cat->parent(親)」が5の物が商品ジャンルなので、このカテゴリ名とスラグを取得して返します。

 

6.ファイル構造

上記で作成した4つの関数の構造は下記になります。

以上でこのドキュメントの説明は完了です。

関連ドキュメントは下記の関連記事一覧から探して下さい。


<関連記事一覧>

「wecart」に関連するドキュメントを表示しています。尚、このページネーションはJquryで制御しています。

Welcartには、カートを空にするクラス関数が用意されています。ここでは、この関数の使い方を解説しています。

Welcartの商品一覧ページに購入ボタンを配置する為には「usces_direct_intoCart」を利用しますが、この関数は必須オプションのチェックは行ってくれません。それをうまく行える方法を解説しています。

welcartで用意されているカート投入ボタンはwhile(usces_have_skus())ループの中でしか使えません。しかしforeachの方がカウンター処理がしやすいのでこれが使えるカート投入ボタンを作成しました。

welcartの購入数量指定はテキスト入力です。これをボタンで数値入力ができる様にしました

welcartの中ではどれ位のポイントが付与されるのか?どれ位の金額が値引きされるか?の表示がありません。そこでこれを表示する関数を作成しました。

welcartで用意されているSKU価格の表示関数はwhile(usces_have_skus())ループの中でしか使えません。しかしforeachの方がカウンター処理がしやすいのでこれが使えるSKU価格の表示関数を作成しました。

Welcart_basicテーマは、SKUが複数あると縦にダラダラと長く表示される問題点があります。そこでSKUを分解し、どのSKUを表示するのか?をラジオボタンやセレクトBOXで選択できる様にカスタマイズします。

welcartで用意されている業務パックデータの表示関数はwhile(usces_have_skus())ループの中でしか使えません。しかしforeachの方がカウンター処理がしやすいのでこれが使える業務パックデータの表示関数を作成しました。

Welcartでは業務パック割引(購入数量割引)という機能があります。この機能を使うとカートページにGPマークが表示させますがこのマークを任意のアイコンに変更する方法を解説しています。

カートに商品を投入すると、商品名は①商品名②商品コード③SKU名④SKUコードを合わせた文字列が商品名として表示されます。これをカスタマイズする方法を解説しています。

Welcartのカートへの投入ボタンのプログラム解説と、色と文字を変更する新しい関数の作成方法を解説しています。

welcart_basicのオプション表示は、入力必須をチェックしてもユーザから見て判りません。またチェックボックスやラジオボタン表示に一部、おかしい所があります。ここではこれらの修正方法を解説しています。

Welcartにはポイントを付与し、商品購入時にそのポイントを利用する仕組みがあります。又キャンペーン設定でポイントをn倍にしたり価格を値引く仕組みもあります。ここではそれらの概要と問題点及び解決策を解説しています。

Welcartでは業務パック割引(購入数量割引)という機能があります。これは、指定した数量以上を購入した場合に価格を値引く仕組みですが、業務パック割引という言葉はあまりなじみがないのでこのメッセージを変更する方法を解説しています。

Welcart_Basicの購入数量は数値入力です。しかしスマホではこのような入力方法は面倒なので+/-ボタンで購入数量が変更できる様に変更した事例を紹介しています。

Welcartでは個別商品画面に商品オプションやカスタムフィールドを追加する事ができます。ここではその追加方法を解説しています。

Welcartで個別商品表示画面から、商品マスタ編集にジャンプする事ができるとコンテンツ編集効率が飛躍的に向上します。しかしWelcartではこの機能が提供されていないのでこれを可能になる関数を作成します。

ここではWelcart商品を価格順に並び替える為に、WordpressのメタデータにWelcartの価格データを自動的に登録する関数の作成方法を解説しています。

ここではWelcartのキャンペーン商品設定の方法と、設定された商品リストを表示する関数を作成する方法を解説しています

ここではWelcartの商品カテゴリを指定して商品リストする関数を作成しています。全商品、おすすめ商品、新製品及び商品カテゴリが対象となります。

ここでは売れている商品をWelcartのDBから読み出して「売れ筋商品」としてリストする関数を作成する方法を解説しています。

Welcartには関連商品という概念はありません。そこで個別商品を表示した時に、その商品と同じカテゴリの商品を「関連商品リスト」として表示する関数を作成する方法を解説します。

Welcart_basicのメニュをカスタマイズする為にはどの様な仕組みで作られているか?を知る必要があります。そこでここではメニュの仕様を解説しています。

ここではWelcart_basicのカートボタンの「色」と「文字」を変更する関数の作成方法を解説しています。

カートボタンをカスタマイズする為には、このカートがどの様に作られているのか?を知る必要があります。そこでここではその仕様について解説しています。

Welcartで会員システムを使うのであれば、ログイン後の画面に現在使えるポイント数が表示されているのが親切です。そこでここではwelcart_bascで保有ポイントが表示されるようにカスタマイズしたサンプルを解説しています。

welcart_basicの会員システムをカスタマイズする為には、この機能がどの様に作られているか?を知る必要があります。
そこでこのでは会員システムの仕組みについて解説しています。

Welcart_basicの検索機能をカスタマイズする為には、これがどの様に作られているのか?を知る必要があります。ここではその仕様を解説しています。

welcart_basicは商品だけしか検索対象としていませんが、ここではページの情報を読み込んで、カテゴリ別に検索できる様にカスタマイズする方法を解説しています。

ここでは「welcart_basic」の「category.php」がブログ用のサイドーバーが使われてない問題点を修正方法を説明しています。また「welcart_basic」がどの様な構造になっているか?も併せて解説しています。

ここではWelcartで用意されている関数を解説しています。

Welcartのファンクションはfunctions.phpからincフォルダにあるファンクションをインクルードしています。この辺の構造を商品表示の設定例で解説しています。

Welcartのホームページと事前に作られている固有のページを解説してます。特にカートページやメンバーページ及びお問い合わせフォームの作り方も解説しています。

WelcartはWordPressの「固定ページ」と「投稿ページ」のみで作られております。この「投稿ページ」の中に「商品」が設定されています。そこで検索機能はファンクションの中で、商品のみを検索する様な設定が定義されている為、そのままではブログ等を検索できません。

ここではWelcartの商品画像を「slick」でスライドさせる方法を解説しています。スライド方法は下記の2つを解説しています。①.slickオプションだけでスライドさせる。②slickイベントやメソッドを使ってスライドさせる。

welcart_basicのカスタマイズ→ヘッダ画像で設定したヘッダ画像を「slick」で自動スライドさせる方法を解説しています。

「slick.js」はjqueryでスライド動作を指定するプラグインです。ここでは「slick.js」のインストールから、設定方法及び「slick.js」のオプションを解説しています。またslickのメソッドやイベントの使い方の説明しています。

ここでは「Welcart basic」の子テーマの作成方法を解説しています。

Welcartの商品画像適用ルールと「Media Library Assistant」による画像管理、及び商品画像の登録方法を解説しています。

Welcartで商品登録を行う前に.Welcart Shopの「基本設定」、「配送設定」及び「.商品カテゴリ」の登録が必要で、ここではその登録方法を解説しています。

ここではWelCartの商品の登録の仕方を解説しています。

WelcartはWordPressを使った無償のe-Commerceシステムです。ここでは「Welcart」の「インストール」と無償テンプレート「Welcart_basic」について解説します。

ここでは「Welcart_Basic」の「メニュ」や「ウィジェット」及び「ヘッダ画像」の使い方を解説します。