〒郵便番号自動入力 コンタクトフォーム7

ajaxzip3

とやらをつかいます

■welcart

ファンクションの状態でドリではバグルが

いい風に動作するやつ ファンクションに
http://qiita.com/kawaosa/items/ecacdfb28af3e5dc17b5

<?php
add_filter( 'usces_filter_apply_addressform', 'zip2addr_jp', 10, 3);
function zip2addr_jp($formtag, $type, $data){
  $pref_name = $type.'[pref]';
  $addr_name = $type.'[address1]';
  $js =<<<END
<script src="https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js" charset="UTF-8"></script>
<script>
jQuery(function($) {
  $('#zipcode').change(function() {
    AjaxZip3.zip2addr(this, '', '$pref_name', '$addr_name');
  });
});
</script>
END;
  return $formtag.$js;
}
  
  
?>

ばぐらんが
郵便番号を入力しなおせないやつ
これはヘッダーに
http://riyomaru.minibird.jp/wordpress/507/

<script src="https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3-https.js " type="text/javascript" charset="UTF-8"></script>
<script type="text/javascript">
//<![CDATA[
jQuery(function(){
var addr_de = function(){
AjaxZip3.zip2addr(this,'','delivery[pref]','delivery[address1]','delivery[address2]');
};
var addr_me = function(){
AjaxZip3.zip2addr(this,'', 'member[pref]', 'member[address1]', 'member[address2]');
};
 
var addr_cu = function(){
AjaxZip3.zip2addr(this,'','customer[pref]','customer[address1]','customer[address2]');
};
 
 
switch($('#zipcode').attr('name')){
case 'delivery[zipcode]':
  $('#zipcode').change(addr_de).keyup(addr_de);
  break;
case 'member[zipcode]':
  $('#zipcode').change(addr_me).keyup(addr_me);
    break;
case 'customer[zipcode]':
  $('#zipcode').change(addr_cu).keyup(addr_cu);
    break;
}
});
//]]>
</script>

コンタクトフォーム7の場合

<tr><th>郵便番号</th>
<td>[text* zip id:zip 10/ watermark]</td>
</tr>

<tr><th>住所</th>
<td>[text* addr id:addr]</td>
</tr>

フォーム出力コード前に

★★★うまくいった改造

<script src="https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js" charset="UTF-8"></script>
<script>
jQuery(function($) {
  $('#zip').change(function(event) {
    AjaxZip3.zip2addr(this, '', 'addr', 'addr');
  });
});
</script>

×××これは修正できっせん

<script type='text/javascript' src='https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3-https.js'></script>
<script type="text/javascript">
jQuery(function(){
  jQuery('#zip').keyup(function(event){
    AjaxZip3.zip2addr(this,'','addr','addr');
  })
})
</script>

welcart まとめてく4

消費税込の価格表示法
http://www.welcart.com/community/forums/topic/%E7%A8%8E%E8%BE%BC%E3%81%BF%E4%BE%A1%E6%A0%BC%E3%81%AE%E8%A1%A8%E7%A4%BA%E6%96%B9%E6%B3%95

<?php
global $usces;
$price = usces_the_itemPrice( 'return' );//売価
$tax = $usces->getTax( $price );//売価×基本設定の税額(税計算方法も考慮します)
echo 'With tax: ¥' . number_format($price + $tax);
?>

送料についての参考
送料加算の仕組み
http://www.welcart.com/documents/topicks/%E9%80%81%E6%96%99%E5%8A%A0%E7%AE%97%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF

配送設定
http://www.welcart.com/documents/manual-2/%E9%85%8D%E9%80%81%E8%A8%AD%E5%AE%9A#kokusaibin

カートページカスタマイズ 消費税込み

http://welcustom.net/consumption-tax-cart-page/

cart.php

	$html .= usces_get_cart_rows('return');
//追加コード
//タックスモードなら税金と税込み表示
if ( 'exclude' == $this->options['tax_mode'] ){
$total_price = usces_total_price('return') - usces_order_discount('return');
$taxsss = $this -> getTax( $total_price );	
$with_tax_price = $total_price + $taxsss;
$tax_html = '<tr>
		<td colspan="5" scope="row" class="aright">消費税</td><td class="aright">¥'.$taxsss.'</td>
		<td colspan="2">&nbsp;</td></tr>
		
		
		
		<tr><td colspan="5" scope="row" class="aright">税込合計</td><td class="aright"> ¥'.$with_tax_price.' </td><td colspan="2">&nbsp;</td></tr>
		
		<tr><td colspan="6" scope="row" class="aright">送料別</td><td colspan="2">&nbsp;</td></tr>
		
		
		
		';
}
//税込みモードなら
else{
$tax_html = '	
	<tr>
			<td colspan="5" scope="row" class="aright">' . __('total items','usces') . usces_guid_tax('return') . '</td>
			<td class="aright">' . usces_crform($this->get_total_price(), true, false, 'return') . '</td>
			<td colspan="2">&nbsp;</td>
		</tr>';
		
		}
		
//追加ここまで


$cart_table_footer = '</tbody>
		<tfoot>
		
'//ココも追加ね
.$tax_html
//まで
.'

</tfoot> 
	</table>
	';

親カテゴリ指定して 小カテゴリ別に記事一覧 つまり welcart の商品一覧カテゴリ別

<?php
 //親のIDをget_termsへ
$args = array('child_of' => 97);
//子ターム一覧を取得
$dterms=get_terms('category',$args);
?>
   

<?php 	
foreach ( $dterms as $dterm ):
?>


<!--★★★ループ基本-->
<?php
if ( have_posts () ) :
    while ( have_posts() ) :
        the_post();
?>
商品
<?php
    endwhile;
endif;
?>
<?php wp_reset_query(); ?>



<?php endforeach; ?>

welcartまとめてく1

SOLで記載が甘かったので
za-suで応用する際まとめてきます。

■インストしてまず最初に配送方法を設定
配送方法を変更した場合
後にその関連商品も更新しないといけないといか。。

今回は国際も含むために国際設定
http://www.welcart.com/documents/manual-2/%E9%85%8D%E9%80%81%E8%A8%AD%E5%AE%9A#kokusaibin
システム設定で、「販売対象国」を複数選択

配送設定で入力
料金は送料で入力 日本 アメリカ ドロップダウン設定

■次に商品追加方法を参考に商品を登録

■商品はブログポストで表示される。
特に何も記載しなくともコンテンツに
div itempage が追記されそこに商品が表示される。
その中のコードが書かれたファイルがどこにあるかわからない
が自由にカスタムする為に直接コードを記載する。
まずusces_the_item();で宣言・商品ページか分岐

<?php if ( have_posts () ) :
while (have_posts()) : the_post(); 
usces_the_item(); //ウェルカート用?>

<?php if ( usces_is_item() ) : //商品だったら ?>


ここに記載していく

<?php else : //商品以外だったら?>

<?php endif; ?>



<?php endwhile; ?>
<?php
endif;
?> 


この中に記載していくのだろう。

カートに含ませる項目を作る場合は

<form action="<?php echo USCES_CART_URL ?>" method="post">
</form>

これでくくる。
ループ内全部をくくっても大丈夫そうだSOLでそうだで

オプションフィールドを使おうかと思ったが
商品ページにループでしか出せない様だったので
却下。

おまけコードオプション

<?php if (usces_is_options()) : ?>
<?php while (usces_have_options()) : ?>
<?php
$abc = esc_html(usces_getItemOptName());
echo $abc;
$efg = usces_the_itemOption($abc);
echo $efg;
?>

<?php endwhile; ?>

<?php endif; ?>

商品追加ページにいらない項目が多いため
カスタムアドミンで消す。
SKU追加ボタン変更など

@charset "UTF-8";
/*購入制限数 ポイント率 業務パック割引*/
.iteminfo_table tr:nth-of-type(3),
.iteminfo_table tr:nth-of-type(4),
.iteminfo_table tr:nth-of-type(5),
.iteminfo_table tr:nth-of-type(6),
.iteminfo_table tr:nth-of-type(7)

/*商品オプション*/
,#itemoption
/*商品詳細本文欄*/
,.welcart-shop_page_usces_itemedit #wp-content-wrap

,.welcart-shop_page_usces_itemedit #postdivrich
/*商品詳細本文文字 これで効く不明*/
,div.inside div.itempagetitle:nth-of-type(3)
 { display:none}
 
 
  /*SKU追加ボタンを忘れがちだから赤化*/
 #newskusubmit input{ background: #e14d43;
border-color: #d02c21;
color: #fff;
-webkit-box-shadow: inset 0 1px 0 #ec8b85,0 1px 0 rgba(0,0,0,.15);
box-shadow: inset 0 1px 0 #ec8b85,0 1px 0 rgba(0,0,0,.15);
margin-bottom:15px;}

オリジナルナビを出す為にファンクションに追加

// カテゴリを複数書き出すパンくずリスト
function the_breadcrumb() {
     if (!is_home()) {
          echo '<a href="http://www.za-su.com/">PRODUCTS</a>';
     }
     if (is_category() || is_single()) { //カテゴリページの場合。「Home>[カテゴリ,カテゴリ]」
          echo " &gt; ";
          the_category(" & ");
          echo "";
     }
     if (is_single()) {//投稿ページの場合。「Home>[カテゴリ,カテゴリ]>タイトル」
          echo " &gt; ";
          the_title();
     } elseif (is_page()) { //固定ページの場合。「Home>親ページ>子ページ>タイトル」
     echo ' &gt; ';
     global $post; //グローバル変数の取得
     $ancestors = get_post_ancestors($post->ID);
          foreach (array_reverse($ancestors) as $parid) {
          $title = get_page($parid)->post_title;
          echo '<a href="'.get_page_link($parid).'" title="'.$title.'">'.$title.'</a> &gt; ';
          }
     the_title();
     }
}
//投稿ページ以外でも正常に動作するように改良しました。カテゴリページ、固定ページでも動作します。
//カテゴリではなく、タグ表示にしたい場合は「the_category」を「the_tag」に置き換えてください。

//パンくずリストを表示させたい場所(当サイトではloop-single.php)に
//<?php the_breadcrumb(); ?>
<?php
//を追加。

以降アドバンススイートでやる

Custom Field Suite 関連ポスト

SOLでイベントレポートなどに関連商品を出す方法

フィールドで関連ポストを作成。

入力の際ポスト選択

カスタムポストもできるようだ。

ループ方法

まずフォーチで出すのが基本らしいが

■ サンプル
<?php
$r_posts = $cfs->get('related_post');
if ($r_posts) :
  echo '<ul>'.PHP_EOL;
  foreach ($r_posts as $post_id) :
    $post_obj = get_post($post_id);
?>
    <li><?php echo esc_html($post_obj->post_title); ?></li>
<?php
  endforeach;
  echo '</ul>'.PHP_EOL;
endif;
?>

welcartのため
すでにごちゃごちゃと
フォーチを書いて さらにhave postで出力するのが基本なため
usces_the_item();のセット方法がふぉーちで未定 わからないまだ

なので

$r_posts = $cfs->get('kanren');

から投稿IDを抜き出す。

それを
post__inに代入 の方法でクリア

<?php
$r_posts = $cfs->get('kanren');
if ($r_posts) :
?>

    
<div class="top_titol" style="font-size:24px;">関連商品</div>

    <div class="top_new_item_all">



<?php
endif;
?>

<?php
 query_posts(array('post__in' => array($r_posts[0],$r_posts[1],$r_posts[2],$r_posts[3],$r_posts[4],$r_posts[5],$r_posts[6],$r_posts[7],$r_posts[8],$r_posts[9],$r_posts[10]
 ),'orderby' => 'title', 'order' => 'ASC')); ?>
<?php
if ( have_posts () ) :
    while ( have_posts() ) :
        the_post();
		 usces_the_item();
?>

   <?php if ( usces_is_item() ) : ?> 
     
     <!--ITEM_box-->  
    <a href="<?php the_permalink(); ?>"><div class="top_new_item_box">
      <div class="top_new_item_sam">
      
      <?php
//商品画像
usces_the_itemImage(0, 180, 275); ?>
      </div>
      
      <div class="top_item_name"><?php the_title(); ?></div>
      <?php usces_have_skus(); ?>
      <div class="top_item_disp"><?php usces_the_itemPrice(); ?>円</span><span class="tax"><?php usces_guid_tax(); ?></span></div>
    </div></a>
  <!--/ITEM_box-->      
 <?php endif; ?> 
   
  <?php
    endwhile;?> 
     <br clear="all" />
 </div>
<?php
endif;
?> 

 <?php wp_reset_query(); ?>

最初はカンマ区切りのポストIDを入力しゲットポストめたで代入したが
コンマ区切りは1個目しか入らないようだった。
色々試行錯誤したが
上記以外に使用するのは無理だった、現在。

welcart 右上にログイン名前

  <?php if(usces_is_membersystem_state() || usces_is_cart()): ?>
    <ul class="subnavi">
      <?php if(usces_is_membersystem_state()): ?>
      <li><a href="<?php echo USCES_MEMBER_URL; ?>"><?php if(usces_is_login()){printf(usces_the_member_name('return')); echo ' さん';}else{echo 'ゲストさん';} ?></a></li>
     

      <?php endif; ?>
      <?php if(usces_is_cart()): ?>
      <li><a href="<?php echo USCES_CART_URL; ?>"><img src="img/cart2.png" width="19" height="16"></a></li>
      <?php endif; ?>
      </ul>
    <?php endif; ?>
    

郵便番号から住所を自動で表示 AjaxZip3 welcart編

wp_head()の後に記入(SSLの場合)

<script src="https://ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3-https.js " type="text/javascript" charset="UTF-8"></script>
<script type="text/javascript">
//<![CDATA[
jQuery(function(){
var addr_de = function(){
AjaxZip3.zip2addr(this,'','delivery[pref]','delivery[address1]','delivery[address2]');
};
var addr_me = function(){
AjaxZip3.zip2addr(this,'', 'member[pref]', 'member[address1]', 'member[address2]');
};
 
var addr_cu = function(){
AjaxZip3.zip2addr(this,'','customer[pref]','customer[address1]','customer[address2]');
};
 
 
switch($('#zipcode').attr('name')){
case 'delivery[zipcode]':
  $('#zipcode').change(addr_de).keyup(addr_de);
  break;
case 'member[zipcode]':
  $('#zipcode').change(addr_me).keyup(addr_me);
    break;
case 'customer[zipcode]':
  $('#zipcode').change(addr_cu).keyup(addr_cu);
    break;
}
});
//]]>
</script>

*追記 2013/6/17
これで動作しない方は、$をjQueryに書き換えてみてください。

商品の編集をログイン中出す。

<?php edit_post_link('この商品を編集', '<div class="henshu">', '</div><div style="clear:both"></div>'); ?>
.henshu {
}
.henshu a {
	color: #FFF;
	background-color: #333;
	background-image: url(../img/body_backgr/body_background_white11.png);
	background-repeat: repeat;
	padding: 10px;
	text-decoration: none;
	overflow: hidden;
	float: left;
}

ファンクション

//アイテムページの編集をアイテム編集ページに
add_filter('edit_post_link', 'my_edit_post_link');
function my_edit_post_link($output) {
  if(usces_is_item()){
  $output = str_replace('post.php?post', 'admin.php?page=usces_itemedit&post', $output);
    }
    return str_replace('<a ', '<a target="_blank" ', $output);
}

商品追加方法

商品に品番をつける 例 sol001
アップ前に
メイン写真に品番をつける 例 sol001.jpg
写真をアップロード

商品マスターより商品追加

最低限必要な項目

商品コード 例 sol001
商品名 例 SOLブランドTシャツ6

SKU価格
SKUコード sol006 (sol006-S sol006-M sol006-L sol006-XL)
売価(円) 5800

カテゴリー

ベストセラー

インストするとウィジェットにwelcart BESTセラーがでる

サイドバーを使える様にして

指定の位置へ

<?php dynamic_sidebar('Widgets 1'); ?>
 <div style="clear:both;"></div>

ベストセラーにサムネイル、順番を画像で出力したり、指定クラスをつける
ファンクションへ

//welcartベストセラー サムネイル+順位表示が画像
add_filter('usces_filter_bestseller', 'my_bestseller_func', 10, 3);
function my_bestseller_func() {
    $args = func_get_args();
    list($html, $post_id, $index) = $args;
    $post = get_post($post_id);
    if ( $index == 0 ){
    $img = 'img/1.png';
}    elseif ( $index == 1 ){
    $img = 'img/2.png';
}    elseif ($index == 2){
    $img = 'img/3.png';
}    else {
}

    $list = '<li class="side_rank"><a href="' . get_permalink($post_id) . '"><img src="' . $img . '" width="24" style="padding-bottom:0px;" />
<br/>' . usces_the_itemImage(0, 175, 267, $post, 'return' ) . '<br>' . $post->post_title . '</a></li>
';
    return $list;
}