忍者ブログ
06 August

welcart 保有ポイント、付与ポイントについてのあれこれ

「基本設定」→「ショップ設定」→「ポイント率初期値

これは設定してから新規登録した商品にしか反映されない
そのため後からポイントつけたいなと思ったら、全ての商品詳細ページで個別にポイント率を入力する必要がある。はーだりい何百ページを全て書き直し・・・。
今ポイントの予定が無くてもとりあえず初期値は1%とかに設定しておき、
「会員ポイント」→「付与しない」で無効化しておくほうがいいとおもう。


「基本設定」→「営業設定」→「キャンペーン対象



該当カテゴリーに入ってるものすべてを対象とし、
「一律ポイント○倍」や「○%割引き」を設定する。
キャンペーン専用カテゴリーを作るか、既存のカテゴリーから選ぶかする。
しかし一つのカテゴリーしか設定できない
複数種類のポイント倍付けをしたかったら、個別ページでポイント%を変える必要がある


「受注画面詳細」→「付与ポイント



ここに入力されたものは、「会員リスト」の「保有ポイント」に加算される。
商品を削除すると「付与ポイント」も減る。
個別に修正したい場合は「会員リスト」の「保有ポイント」をいじる。


保有ポイントを表示する



<?php if(usces_is_membersystem_point()): ?>ポイント:
<?php echo usces_the_member_point();?> p
<?php endif; ?>

表示させたい場所に上記を書き込む。
※一旦会員をログアウトしないと保有ポイントが反映されない(無駄にハマったふざけんな)
[解決済み] ポイント付与について
http://goo.gl/IHrK1X


ポイントレートを表示する


どちらか一方のみ記述だと思っているのと違う数値が出てしまいます。

<?php usces_point_rate_discount(
); ?>
キャンペーンポイントレートの数値を出力
→通常モードでも、キャンペーンカテゴリーの商品はキャンペーン特典に記述したポイントレートで表示されてしまう

<?php usces_point_rate(); ?>
通常ポイントレートの数値を出力
→キャンペーンモード中なのにキャンペーンカテゴリー品も通常ポイントレートで表示されてしまう。

http://welcustom.net/point-rate-display/
有名なwelcartカスタマイズブログのこのページのコードを参考に挿入し、ちゃんと表示できました。キャンペーンスケジュール・キャンペーンポイントを設定して更新してみてください。
通常時とキャンペーン時でポイントレートが切り替わってれば正常です。

「営業日設定」→「キャンペーン・スケジュール


ここの日付を設定すると、「基本設定」で設定したキャンペーンカテゴリー及び倍率へ、自動的に予約日に切り替わります。キャンペーン予約日を設定しないときは、「年」を空欄にします
「ホーム」→「表示モード」のところに、今設定されてる状態が表示されます。
受注詳細画面の中の「キャンペーンセール」のところに、開催期間中の買い物は何のキャンペーンをしていたかが記述されます。
ポイント付与トラブルを避けるためにも、「キャンペーン・スケジュール」で日付を設定したほうがのちのち記録に残るようです。

普段はポイント付与なしで、たまにポイント付与したい場合。


1、「基本設定」→「営業設定」→「キャンペーン対象」→「全商品」にし、
   「キャンペーン特典」→「ポイント 0 倍」にします。
2、「営業日設定」→「キャンペーン・スケジュール」の「年」を空白にします

これで表示モードは「通常モード」のまま、ポイントレートが0%になりました。
通常1% × ポイント0倍 = 0%
ここを「全商品」「ポイント1倍」で全商品1%(通常1%の場合)になります。
確認は <?php usces_point_rate_discount($post->ID); ?>% を記述してみてください。

今時はポイント付けるとなれば通常でつくのが当たり前ですが、通常時はナシにしたいという人もいるかもしれません。こういうふうにやろうとしてぶっつけ本番でやりました。キャンペーンが終わり、ポイントつけないのだから「付与しない」を選んで更新したら、保有ポイント項目自体表示されなくなりました。「あれ、できなくない?これ」とマジ焦りです。

ポイント持ってる人がもういるのに、ポイント使えないとかやばいじゃん。でも通常時にポイント付与したくないしどうしよう・・・。
ポイント率はもう1%に全て書き換え済みです。これをまた全部0%に書き換えるのか?という焦りでやばかったわけですが、なんとか解決できてよかったです。
でも全然正攻法じゃないとおもうのでうーん。
一括でポイント率書き換えのなんかないのか。

てかXAMPPで検証すべきだった。出来ると思って本番でやってやらかすとこだった。


PR
30 July

nth-of-typeの使い方 意外と知らないセレクタ

:nth-of-type(odd) ・・・ 奇数番目の要素に適用
:nth-of-type(2n+1) ・・・ 奇数番目の要素に適用
:nth-of-type(even) ・・・ 偶数番目の要素に適用
:nth-of-type(2n) ・・・ 偶数番目の要素に適用
:nth-of-type(3n) ・・・ 3,6,9,12…番目の要素に適用
:nth-of-type(3n+1) ・・・ 1,4,7,10…番目の要素に適用
:nth-of-type(-n+3) ・・・ 最初の3つの要素に適用
:nth-child(n+3) ・・・ 最初の3つの要素以外に適用
http://d.hatena.ne.jp/smartboy/20131229/p1
http://weboook.blog22.fc2.com/blog-entry-268.html
29 July

welcart すべて売り切れたときのみ「売り切れ」表示にする

今までは商品一覧ページに

<?php usces_the_itemZaiko(); ?>

と書いてありました。これがデフォか書き足したのかは忘れました・・・。
これだとSKUが複数の場合、一番上のSKUが「売り切れ」になると
他のSKUの在庫が残っていても商品一覧ページでは「売り切れ」と出てしまいます。

SKUの順番を変えればその表示はなくなりますが、
面倒くさいし順番がバラバラになってしまいます。
そこで開発フォーラムを検索したところ下記を見つけました。
[解決済み] 売り切れ表示のカスタマイズについて
http://goo.gl/s75BU9

一つでも在庫がある場合以外のとき(=全ての在庫がない場合)、「売切れ」と表示する
<?php if ( !usces_have_zaiko_anyone() ) : ?>売切れ
<?php endif; ?>   

usces_have_zaiko_anyone
商品登録されているSKUのうちひとつでも在庫がある場合にtrueを返す
というタグらしいです。
! で「それ以外」を表します。
25 July

アドバンスドカスタムフィールド「Repeater Field」の表示を逆にする ワードプレス

<?php $rows = get_field('gallery');?>
<?php if($rows):?>
<?php $rows = array_reverse($rows);?>  // array_reverse();で配列の逆表示

(ループ内には入れないけどpage.phpに直接書きこみたいものはここへ)
<div>
<?php foreach($rows as $row) { // ループ開始
        // ループ内で使用する画像の指定
        $attachment_id = $row['gallery_img'];
        $image = wp_get_attachment_image_src( $attachment_id, 'gallery-custom-image' );
        $size = "custom-image"; // (thumbnail, medium, large, full or custom size)
        $imageF = wp_get_attachment_image_src( $attachment_id, 'full' );
        // url = $image[0];
        // width = $image[1];
        // height = $image[2];
?>

<table class="gallery_box"> <!--表示させたいカスタムフィールドの中身-->
  <tr>
    <th colspan="2"><a href="<?php echo $imageF[0]; ?>" rel="lightbox"><img src="<?php echo $image[0]; ?>" width="<?php echo $image[1]; ?>" height="<?php echo $image[2]; ?>"/></a>
</th>
  </tr>
  <tr>
    <th>題名</th>
    <td><?php echo $row['サブフィールド名']; ?></td>
  </tr>
</table>

 <?php  } ?>  // ループ終わり

</div>

(ループ内には入れないけどpage.phpに直接書きこみたいものはここへ)

<?php endif; ?><!--//<?php if($rows):?>-->


カスタムサイズの画像をサムネイルにして、クリックするとライトボックスでフル画像が開く。
Repeater Fieldは旧→新という順番で追加される。
ドラック&ドロップで順番は自由に入れ替えられるが、一斉に逆順序にしたいこともあるとおもう。
ギャラリーなど画像を並べたら、新しいものを上にしたいのではなかろうか?
そんなとき array_reverse(); を使って配列を逆にする。

http://www.advancedcustomfields.com/resources/field-types/repeater/
http://ja.forums.wordpress.org/topic/134901?replies=5#post-185382
10 July

WCEX Mobile トップページの新着ボックスを複数設置する welcart

有料拡張プラグインWCEX Mobileで、トップページにあるスライドボックスを
さらに増やしたいときのやり方。

「再入荷商品」として新たに設置したい。

前提条件:再入荷商品のカテゴリーを作成し、商品を登録しておく

1、新着商品<div id="home_new">のdivを丸ごとコピーして表示させたい場所に置く。
2、コピーした <div id="home_new"> のid名を変更→ <div id="sainyuka">
3、コピーした <div id="home_new"> 内の
<span><a href="<?php wcmb_get_category_link_by_slug( 'itemnew' ); ?>"><?php _e('list', 'usces'); ?> &raquo;</a></span> のスラッグ名を再入荷商品のスラッグ名に変更
<?php $reco_ob = new wp_query(array('category_name'=>'itemnew', 'posts_per_page'=>12, 'post_status'=>'publish')); ?> のカテゴリー名を再入荷商品のカテゴリー名に変更変更
4、style.css内を「home_new」で検索して、出てきた箇所全てに「sainyuka」も加える

これで見た目は完成。
しかし次へ前へのボタンをおしてもスライドしない!
Rotoというjqueryを使って動いていました。
これの設定の仕方は非常に簡単なのでありがたいです。
http://www.skuare.net/2011/09/roto.html

5、コピーした <div id="home_new"> 内の <div id="listbox" class="roto"> の
id名を変更します→ <div id="listbox2" class="roto">
6、コピーした <div id="home_new"> 内の <button id="listbox-prev"><button id="listbox-next"> の id名を先ほど変更したid名と同じにします
→ <button id="listbox2-prev"><button id="listbox2-next">
7、footer.phpを開き、</body>直前にあるScriptに        $("#listbox2").roto({ direction: "v" });
と書き足します。

完成です!

おすすめ商品のほうのスライドボックスを増やしたいときは、<div id="home_recommend">
のdivをコピペして上記と同じことをしてください。スライドのScriptは、おすすめ商品で
使われているid名のものをコピペしてid名を変えてください。
縦スライド、横スライドで指定の仕方が違います。
コピペ元→      $("#carousel").roto({ snap: false });