WooCommerce固有ページでの条件関数

WooCommerceのプラグインを作っていたのですが、ちょっとバグが発生して、お!という事が起こって、その解決方法をみつけたので、書いておきます。

ちょっと決済周りのページで決済処理をするプログラムを書いていて、エラー処理の必要があって、エラーしたらユーザーに分かるようにwc_add_noticeという関数を使って、表示する処理をしていたのです。普通に使っていれば、問題なかったのですが、CSVファイルで注文データを取り込もうとするとStatusを登録する処理をする際に決済処理をしてしまうのでその際にエラーが出るという状態だったので。

なるほど、じゃあ、決済ページの時だけ wc_add_notice を出す処理をしないといけないという事で、WordPressでは、is_home()とかあるので、WooCommerceでも定義関数があるんじゃないかなと思って調べてみたらやっぱりありました。

ここからはこちらのページの日本語説明だと思ってください。

Conditional Tags

固有ページの条件分岐関数

基本的に以下の関数は、該当した場合はtrueを返して、違う場合はfalseを返します。

また、条件詳細指定が出来る関数はis_product_category()is_product_tag()is_wc_endpoint_url()の3つだけです。

A WooCommerce page(WooCommerceのテンプレートでshortcodeなど使われるページ全部)
is_woocommerce()

The main shop page(ショップページ)
is_shop()

A product category page(商品カテゴリーアーカイブページ)
is_product_category()
is_product_category( ‘shirts’ )
is_product_category( array( ‘shirts’, ‘games’ ) )

A product tag page(商品タグアーカイブページ)
is_product_tag()
is_product_tag( ‘shirts’ )
is_product_tag( array( ‘shirts’, ‘games’ ) )

A single product page(商品詳細ページ)
is_product()

The cart page(カートページ)
is_cart()

The checkout page(支払いページ)
is_checkout()

Customer account pages(マイアカウントページ)
is_account_page()

An endpoint(エンドポイント)
is_wc_endpoint_url()
エンドポイント全ての場合
is_wc_endpoint_url( ‘order-pay’ )
注文支払いを表示した時
is_wc_endpoint_url( ‘order-received’ )
注文受信を表示した時
is_wc_endpoint_url( ‘view-order’ )
注文表示を表示した時
is_wc_endpoint_url( ‘edit-account’ )
アカウント編集を表示した時
is_wc_endpoint_url( ‘edit-address’ )
住所編集を表示した時
is_wc_endpoint_url( ‘lost-password’ )
パスワードの再発行ページを表示した時
is_wc_endpoint_url( ‘customer-logout’ )
ログアウトページを表示した時
is_wc_endpoint_url( ‘add-payment-method’ )
支払い方法を追加(選択)した時

An ajax request(Ajaxを呼び出しているページ)
is_ajax()

関数の使用例

カテゴリーが違う場合に表示する内容を変える形での関数の例です。

if ( is_product_category() ) {
    if ( is_product_category( 'shirts' ) ) {
        echo 'Hi! Take a look at our sweet tshirts below.';
    } elseif ( is_product_category( 'games' ) ) {
        echo 'Hi! Hungry for some gaming?';
    } else {
        echo 'Hi! Check our our products below.';
    }
}

WordPress.comのサイトでコードを表示

昨日、記事を書いていたんだけど、プログラムコードを書こうと思ったんだけど、どうするんだろうと調べて分かったので、こちらも備忘録的に。

知らない皆様には情報までに。

単純にショートコードですね。以下のようなコードを書いてもらえれば大丈夫。

[code]〜〜〜[/code]

ブログ内での表示のために上記かっこは全角にしています。これを半角に変更してあげてください。

細かな言語を指定する場合は以下のようにします。

[code language=”javascript”]〜〜〜[/code]

ちなみに、ほとんどのプログラムコードに対応出来ています。

そして、ショートコードなのでわかるかと思いますが、色々とパラメーターも使えます。

詳細は以下のURLで説明されています。時間が出来たら詳細に説明してみようかなと思っています。結構技術系のブログを描く人には必須の知識だよね。

Code »Posting Source Code

javascritpで今年の表示(フッターのCopyrightとかに使う時)

基本中の基本のJavascriptなんですが、ついつい忘れてしまうというか、考えて書くのが面倒な時があるので、備忘録的にここにアップしておきます。

改行して見やすくしているバージョン

<script type="text/javascript">
<!-- 
today=new Date(); 
y=today.getFullYear(); 
document.write( y ); 
// -->
</script>

一行でやる場合。

<script type="text/javascript">
<!--
today=new Date(); y=today.getFullYear(); document.write( y );
// -->
</script>

簡単なんですが、一から書くと面倒なので。これでコピペで出来ると。

外部でWordPressの関数を使う場合の方法

いつも、覚えていようと思うのですが、ついつい忘れてしまうので備忘録として登録しておきます。

WordPressの一覧を外部で取りたいなと思った時とか、テストで取得したいなという時にPHPで呼び出す事ができます。もちろん、今はWP APIも実装されたので、APIで抜き出す事も出来るので、そちらでも良いのですが、古典的なPHPで呼び出す方法を書いておきます。

参考にしたサイトの記事
wordpress関数を外から使うにはwp_load.phpを読み込む

なんだか、タイトルのまんまなんですけど、「wp_load.php」をrequire_onceで読み込んだら大抵の関数が使えます。

これ、本当に簡単、便利。ただ、それだけ。(爆)

ブログを再開します。

ブログを再開します。

どうも、2016年になりました。と言う事で、心機一転、ブログをサーバー移行して再開することにしました。

今まで、がっつりとWordPress.comのサービスを使ったことがなかったので、実際に使ってみようかと。

色々と制限があるということは知っているのですが、やっぱり使ってみないとわからないですからね。

ということで、色々と情報を配信していこうかと思います。