忍者ブログ
27 May

welcart 商品一覧カテゴリーページの初期値並び替え

商品一覧カテゴリーのソートがしたけりゃ有料拡張プラグイン(4000円)買えよっていうのが
welcartの出方です。

http://goo.gl/SNlAvg
「商品一覧ページでの商品の並び順変更」welcartフォーラムより

function getcatorder( $query ) { if ( is_admin() || ! $query->is_main_query() ) 
return;
if ( $query->is_category() ) {
$query->set( 'posts_per_page', '-1' );
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_key', '_itemCode' );
$query->set( 'order', 'ASC' );
return;
}
}
add_action( 'pre_get_posts', 'getcatorder' );

この記述を参考に、自分がしたい初期値に変えます。
http://www.understandard.net/wordpress/wp009.html
このサイトを参考に私はこう変えました。

    if ( $query->is_category('スラッグ名') ) {
        $query->set( 'posts_per_page', '-1' );
        $query->set( 'orderby', 'date' );
        //$query->set( 'meta_key', '_itemCode' );
        $query->set( 'order', 'DESC' );
        return;


特定のページだけ並び順を変えたかったので、
category()の括弧の中にスラッグ名をいれています。
並び順は日付(date)の新しい順(DESC)にしました。
ある程度任意で記事を並び替えたいなら、この並び順設定にして
商品編集画面で公開日時をいじるのが早いかなと思います。



welcartの商品一覧の並びの初期値は記事ID順(DESC)です。
適当に商品登録をしてるとぐっちゃぐちゃになります。
カスタムフィールドの値を使ってソートできるそうですが、
肝心の価格ソートは、価格がカスタムフィールドではないため自力でやろうとしたら
何やら激ムズらしいです(公式回答)。有料拡張プラグイン買えよってことらしいです。

検索するとwelcartで並び替えソートのセレクトボックスを作ってる方がいました。
でもこのかたも価格をカスタムフィールドに入れて登録するしかないか・・・といっております。
価格でソートできなければソートをつける意味すらないと思います。
このお店なんで価格ソートないの?って思いますよね。
そう思われるなら最初から全ソートないほうがマシですよ。
そして全価格をカスタムフィールドに入れなおす苦行をするなら
4000円で有料拡張プラグイン買いますよ。

お客が使うソートはともかく、初期値の並びさえ素直にできないイラつき加減。
記事の並び替えが管理画面でできる便利そうな国産プラグイン
Intuitive Custom Post Order を発見しましたが、
welcart商品一覧では動作せず!!

ついでにAdvanced Custom Field もwelcart商品編集画面で使えません!!
なんかね、welcartは色々と無理やり独自に作ってるらしくて、
他のプラグインとの影響ありまくりなんだよね。

*追記
Intuitive Custom Post Orderを有効化したまま放置してたら ’orderby’ 指定がきかなくなり無意味に悩むはめになった。

functions.phpに書き込んだカテゴリーページへの商品一覧並び替えへの指定は効くが、
トップページに直接書き込んだorderbyがうんともすんとも言わず。
テストサイトでは動くのに本サイトでは動かない。
既に稼動してるサイトのためいじりまくれないので、以前めんどくさくて投げた
XAMMPにもう一度挑み本サイトをコピーしたローカル環境を整えることに・・・。
(ここでも相当イライラする。サーバー移管とあまり変わらないイライラ度)

結果的に「そういえば並び替えのプラグインで、強制的に色々効かさないように
ユーザーの意見取り入れて変更してたな・・・ちょっとやりすぎじゃない?とか
読んでて思っていたけど・・・あれ!もしかしてこれか!!!!!」
と思ってプラグインを停止したらどんぴしゃでした。

はああ・・・・・
使用をやめた不要なプラグインは停止か削除しとくべきですね。
使ってなくても他に干渉してくることもあるってことがよくわかりました。



PR
27 May

welcart 配送料金の設定 北海道、沖縄、離島など

http://welcustom.net/regional-shipping-fee/
まず第一に有名なwelcartカスタマイズブログから引用

//特定地域への配送料金を1000円加算する
add_filter('usces_filter_set_cart_fees_shipping_charge', 'myzip_filter_set_cart_fees_shipping_charge', 10, 3);
function myzip_filter_set_cart_fees_shipping_charge($shipping_charge, $cart, $entry){
$myzips = array("000-0000","111-1111","222-2222"); //特定地域の郵便番号を設定
if(in_array($entry['delivery']['zipcode'], $myzips)){
$shipping_charge += 1000; //1000円加算する
}
return $shipping_charge;
}

特定の地域を固定1000円としたいときは、「+」を削除するそうです。



http://goo.gl/gSEdd9
配送地域(郵便番号ごと)の設定」welcartフォーラムより

上のカスタマイズブログからアレンジした方がいました

add_filter('usces_filter_set_cart_fees_shipping_charge',
'myzip_filter_set_cart_fees_shipping_charge', 10, 3);
function myzip_filter_set_cart_fees_shipping_charge
($shipping_charge, $cart, $entry){
$myzips = array("000-000","111-1111","222-2222"); //該当地域の郵便番号を設定。
if(in_array($entry['delivery']['zipcode'], $myzips)){
global $usces; $my_total = $usces->get_total_price();
if($my_total <= 2999) { $shipping_charge = 300; //3000円以下なら300円
} else{
$shipping_charge = 0; //3000円以上なら0円
}

}
return $shipping_charge;
}

このコードだと一律に1000円プラスするしないとかではなく、
別個で送料無料ラインを作れますね。



http://goo.gl/fuKAps
送料無料処理時に、北海道・沖縄のみ別途追加料金」welcartフォーラムより

add_filter('usces_filter_set_cart_fees_shipping_charge', 'my_filter_getShippingCharge', 10, 3);
function my_filter_getShippingCharge($charge, $cart, $entry){
if( '沖縄県' == $entry['delivery']['pref'] || '北海道' == $entry['delivery']['pref'] ){
if ( $charge == 0 ) { //送料が無料の場合
$charge += 1000;
}
}
return $charge;
}

北海道と沖縄のみ送料無料なしにしたい・・・と思って検索したらありました。ありがたい。
県名をそのまま指定してフィルターをかけるみたいです。
これで他の県にも応用できますね。


$myzips = array("000-0000","111-1111","222-2222"); //特定地域の郵便番号を設定


この部分に離島の郵便番号を全部かかなきゃいけないわけです。
離島の郵便番号を書いてある通販サイトとかがよくあります。
そこから該当部分をコピペし、ドリームウィーバーで置換、削除など行い、
そんなに苦労せず離島の郵便番号を上記の形式(ダブルクォーテーション挟みのコロン区切り)
で取り出すことができました。

それを全部functions.phpに書くんですが、すごく長いんですよ。
もしかしてどこからか呼び出したりとかして楽に書くものなんですかね?
私にはわからないからとりあえず書くしかない・・・。
郵便番号は連番なので、連番を記述する方法とかありそうだけど、調べるのが面倒・・・
phpで何が出来る何が出来ないどう表せるとかそもそもわかんない・・・
それがわかってくればもっと楽になれるのにな・・・
17 May

AdRotate 主にアフィリエイト広告をランダム表示させるためのすごいプラグイン ワードプレス

アフィリエイト広告をランダムに表示させようとして検索した結果、
最初は「広告」で探していなかったので、WPの「リンク」機能を使ってやるということに
たどり着いた。

そしてアフィ広告で配られるコードには使えんわ・・・となり、
そういえば広告専用に作られたプラグインを見かけたじゃん!と思い出しまた検索した。

そしてよさそうな AdRotate を使用してみた
http://wpnavi.in/adrotate.html

完全に日本語化されてるわけじゃないのでイライラしたが(アルファベット拒否反応)
なんとかできた。

すごいところ

1、コード入力なんでも可能。html script・・・
  WPの「リンク」なんてアフィURL長すぎて入りきらなかった
2、コード前後に表示させたいものを入力できる
  例えば<div>で囲っておきたいとか、スポンサードリンクって上にいれときたいとか。
  見出しとかも付けられるね。いちいちphpに記述しなくていい。
  ここもhtmlなんでも可能
3、グループ分けした広告を単体表示、ランダム表示、秒数で切り替え表示など設定できる
4、グループわけした広告を、カテゴリー別、固定ページ別に選択して表示できる(表示場所は数箇所から固定)
  カテゴリーで興味ある記事をみた客に興味ある広告を見せることができる!
5、グループ分けした広告の表示期限を決められる
  お店のキャンペーン告知バナーとかに応用できる。外す手間が省ける。
6、ショートコードとphpコードの両方を発行してくれるので、記事内ウィジェット内でも
  .php内でもどこでも設置できる。
7、専用ウィジェットエリアが用意されている
8、クリックされた回数とか解析機能がある

広告表示機能としてもすごくいいと思いましたが、通常でも代用できるってところがいいです。
バナー設置をカスタム投稿タイプで作ろうと思ってたんですが、
わかんないほど知識が無いのでこのプラグインで代用できんじゃん!と嬉しい情報です。
期限決められるところがお店や企業に最適だと思いました。

表示設定は全部管理画面、コードは短いシンプルなもので、ずらずら書く必要がなく嬉しい!!
久々にここがこうならいいのに・・・とかイラつかないでできたプラグインでした。
17 May

管理画面のサイドバーに「リンク」が非表示で存在しない件 ワードプレス

解決策


Link Managerというプラグインをインストールすると、
管理画面のサイドバーに「リンク」が現れる




リンクをランダムで表示させたいなーと思って調べたら「リンク」というものを
使ってbookmark という関数を使うらしい。
「リンク」なんてサイドバーにないんだけど・・・。
そういえば、管理権限プラグインでリンクがどうのみたいのがいくつもあったけど、
リンクってなんだよってずっと思ってた。

そして調べたら、「リンク」WP3.5から非表示になったんだって。
アップグレードしていった人には表示されたままだけど、WPを新規インストールすると
初期値は非表示なんだって。
気づかず話題にされないよこれは。なんなんだよ。
新規の普通の人は存在すらしらねーよ。