welcart カートページでの税込み表示

www.welcart.com/documents/manual/cart
カートの構成
cart.php/カート
商品詳細画面から「カートへ入れる」のボタンが押されたときに最初に表示されるページです。
購入しようとしている商品の一覧が表示されます。
カートで購入する数量を変更することができます。
customer_info.php/お客様情報入力画面
メールアドレスなどのお客様情報を記入してもらう画面が表示されます。
サブナビに表示される「清算する」項目をクリックしてもこのページに移動します。
delivery_info.php/発送・支払い方法入力画面
発送先・支払方法を選択する画面が表示されます。
発送先をお客様情報で記入した場所と同じところに送るか、別の場所に送るかを選択することができます。
confirm.php/内容確認画面
今まで入力してきた購入商品・お客様情報・発送先・支払方法を最終的に確認します。
completion.php/買い物完了画面
内容確認画面で「上記内容で注文する」ボタンを押した後に表示される画面です。
error.php/エラー画面
カート内でなんらかのエラーが生じた場合に表示される画面です。

cart.php/カート

$cart_table_footer = '</tbody>

		
<tfoot>
		
<tr>
			
<th class="num">&nbsp;</th>

			
<th class="thumbnail">&nbsp;</th>

			
<th colspan="3" scope="row" class="aright">' . __('total items','usces') . usces_guid_tax('return') . '</th>

			
<th class="aright">' . usces_crform($this->get_total_price(), true, false, 'return') . '</th>

			
<th class="stock">&nbsp;</th>

			
<th class="action">&nbsp;</th>

		</tr>

';
	
	//税込み 追記	
	 $total_price = usces_total_price('return') - usces_order_discount('return');
    $tax = $this -> getTax( $total_price );
	
	$cart_table_footer .='
	
<tr>
        
<td colspan="5" class="aright">'.usces_tax_label(array(), 'return').'</td>

        
<td class="aright">'. usces_crform($tax, true, false,'return').'</td>

        
<td colspan="2">&nbsp;</td>

    </tr>

    
<tr>
        
<th colspan="5" class="aright">税込合計<em class="tax">(税込)</em></th>

        
<th class="aright">'.
		usces_crform(($total_price + $tax), true, false, 'return'). '</th>

        
<th colspan="2">&nbsp;</th>

    </tr>

';

		
	//ここまで 	
	$cart_table_footer .='	</tfoot>

	</table>

';

これを追加 へんこう

参考
welcustom.net/consumption-tax-cart-page/

<?php if ( 'exclude' == $this->options['tax_mode'] ): ?>
<?php $total_price = usces_total_price('return') - usces_order_discount('return'); $tax = $this -> getTax( $total_price );
?>
    
<tr>
        
<td colspan="5" class="aright"><?php _e('consumption tax', 'usces'); ?></td>

        
<td class="aright"><?php echo usces_crform($tax, true, false); ?></td>

        
<td colspan="2">&nbsp;</td>

    </tr>

    
<tr>
        
<th colspan="5" class="aright"><?php _e('total items','usces'); ?><em class="tax">(税込)</em></th>

        
<th class="aright"><?php echo usces_crform(($total_price + $tax), true, false); ?></th>

        
<th colspan="2">&nbsp;</th>

    </tr>

<?php endif; ?>

カテゴリーの子か孫かアーカイブで判断するコードcat_is_ancestor_of

is_categoryとin_categoryの違いや使い方、条件分岐、複数指定、子孫カテゴリがある場合などなど

<?php if (is_category(5) || cat_is_ancestor_of(5, $cat)) { ?>
skyまたはskyの子孫となるカテゴリ一覧ページで表示される部分
<?php } ?>

ただ プリゲットポストpre_get_posts
で使えない

海外のサイトで発見

https://wordpress.stackexchange.com/questions/46008/how-to-check-if-a-child-category-is-being-queried

function change_number_of_posts($query) {
    if ($query->is_category){
         $cat = get_queried_object();
         $cat_id = (int) $cat->term_id;

         if( $query->is_category('recipes') || $query->is_category('product-reviews')){
              $query->query_vars['posts_per_page'] = -1; 
         }elseif(cat_is_ancestor_of(6,$cat_id)){
              $query->query_vars['posts_per_page'] = -1; 
         }
    }

    return $query;
}

add_filter('pre_get_posts', 'change_number_of_posts'); 

だもんでwelcart用にこうなった

		//welcart用
 if ($query->is_category){
	 $cat = get_queried_object();
         $cat_id = (int) $cat->term_id;
	if (is_category(287) ||
		cat_is_ancestor_of(287, $cat_id) && $query->is_main_query() ) {
$query->set('posts_per_page', 12 );
$query->set('meta_key','release');		
$query->set('orderby', array('meta_value' => 'DESC', 'date' => 'DESC') );//ブログはmeta_key release を使わないから'date' => 'DESC'が適用
  }
 }
	

フォントアイコンをCSS コンテンツで出す方法

「Fontello」を使えばアイコンフォントが簡単に使える!アイコン選んでソースコピペするだけ!

アイコンフォントの具体的な使い方 – Fontello


https://www.plusdesign.co.jp/blog/?p=3158

li.”クラス名”:before {
font-family: 'fontello';
content: '表示するアイコンのUnicode';
}

表示するアイコンのUnicode
「demo.html」のページで、[show codes]
fontello-codes.css」を見る

0xe852

0x
は本来バックスラッシュでいれるようだ
マックでバックスラッシュは
\
オプション¥で入れれる

結果
.tagcloud a:before {

font-family:'fontello';
content: '\e856';
 padding-right: 4px;
}

ブロガー 移行

//コンテンツ内のブロガー画像へのリンクをとる正規表現
add_filter( 'the_content', 'attachment_image_link_remove_filter' );
    function attachment_image_link_remove_filter( $content ) { 
        $content = 
        preg_replace(
        array('{<a(.*?)(blogspot)[^>]*><img}', 
        '{ *" /></a>}'), 
        array('<img','" />'), 
        $content
    );
    return $content; 
}

https://qiita.com/katsukii/items/1c1550f064b4686c04d4
https://msdn.microsoft.com/ja-jp/library/cc392020.aspx
https://qiita.com/honeydaisuki/items/d2a38cef1b95fd347fa4

https://qiita.com/potetopote_/items/6bb809db8f93803991cc

カスタムフィールドサーチ car.cssの書き出し

/*----------------------カスタムフィールドサーチ------------------*/

.car_serch_page_under{
	padding: 10px;
	border: 1px solid #CCC;
	background-color: #f7f8f8;
}

.car_serch_title_under{
	background-color: #9fa0a0;
	padding: 5px;
}

/*.searchform-paramsをboxに変更*/

.searchform-box{
	overflow: hidden;
	padding:20px;
}

.searchform-param{
	overflow: hidden;
}


/*インプット項目
左寄せ*/
.searchform-input-wrapper{ text-align:left}

.searchform-input-wrapper{
	/* width: 100%;	width: auto;*/
	}


/*チックボックス*/
input[type='checkbox']{

}
.checkbox-wrapper{
	float: left;
	margin-right: 10px;
	
}




/*項目見出し*/
.searchform-label{
	/*float: none;*//*ラベルのフロート解除*/
	/*width:100%; *//*ラベルの幅*/
	font-size: 14px;
	font-weight:normal;


}
/*サブミット全体*/
.searchform-controls{
	text-align: center;
	margin-top: 30px;
	margin-bottom:20px;
}


.searchform-controls 
input[type='submit']{
	font-size: 24px;
	padding-right: 20px;
	padding-left: 20px;
	background-image: url(/wp-content/themes/D/d/img/car/serch.png);
	background-repeat: no-repeat;
	text-indent: -9999px;
	background-color: #999;
	width: 167px;
	background-position: center center;
	display: inline-block;
	height: 46px;
	}

/*テキストインプット*/

.searchform-input-wrapper input{
	font-size: 14px;
	
/*	width: 90%;*/
}



/*検索項目の各マージン*/
.DropDownField,.TextField,.CheckboxInput{
	margin-top: 20px;
	/*clear: left;
	float: left;*/
/*	width: 100%;*/
	font-size: 14px;	
}

/*----------------------nth-childで上から順に指定-----------------------*/


/*上限 下限 選択のため*/
.car_search2,.car_search3,.car_search4,.car_search5,.car_search6,.car_search7,.car_search10,.car_search11,.car_search12
{ float:left;}




.car_search8
{ padding-top:20px;
	clear:both;
}




/*ドロップダウン部分サイズ*/
.searchform-input-wrapper{ 

/*width:30%*/

}

.car_search2 .searchform-input-wrapper,.car_search3 .searchform-input-wrapper,
.car_search4 .searchform-input-wrapper,.car_search5 .searchform-input-wrapper,
.car_search6 .searchform-input-wrapper,.car_search7 .searchform-input-wrapper,
.car_search10 .searchform-input-wrapper,.car_search11 .searchform-input-wrapper,
.car_search12 .searchform-input-wrapper

{ width:100px;}

.car_search8 .searchform-input-wrapper,.car_search9 .searchform-input-wrapper{ width:234px;}

/*ラベルサイズ固定*/
.searchform-label{ width:223px;}

.car_search3 .searchform-label,.car_search5 .searchform-label,.car_search7 .searchform-label,
.car_search11 .searchform-label,.car_search12 .searchform-label
{ width:24px; margin-left:10px;}

/*詳細前あける*/

.car_search9{ margin-bottom:20px;}



/*サイドバーの検索 & cssリセット*/

.car_serch_page_side .searchform-box{ padding:10px;}

.car_serch_page_side .car_search{float:none; margin-top:14px;}
.car_serch_page_side .searchform-label{ width:100%; margin-left:0px;}

.car_serch_page_side .searchform-input-wrapper{ width:96%;}

.car_serch_page_side .car_search4 .searchform-input-wrapper,
.car_serch_page_side .car_search5 .searchform-input-wrapper
{ width:44%;}

.car_serch_page_side  .car_search5  .searchform-label{ width:0px; margin-left:0px;}

.car_serch_page_side  .searchform-controls{ text-align:left; margin-left:10px;}

.car_serch_page_side .searchform-controls 
input[type='submit']{
	font-size: 24px;
	padding-right: 20px;
	padding-left: 15px;
	background-image: url(/wp-content/themes/D/d/img/car/submit.png);
	background-repeat: no-repeat;
	text-indent: -9999px;
	background-color: #999;
	width: 100px;
	background-position: center center;
	display: inline-block;
	height: 46px;
	}
	
	
	.car_serch_page_side .searchform-controls{ margin-top:20px;}
	.car_side_menu select#cat{ width:100%; font-size:14px;}

中古 ファンクションからきりだし

//未使用目もこーど//タクソノミ選択とカスタムフィールドのラジオボタンをシンクロさせる
//http://yahss.net/wordpress/1302-synchronize-tax-with-customfield/
function my_print_footer_scripts() {
    global $post_type;
    if ($post_type == 'estate'): ?>
<script type="text/javascript">
    //<![CDATA[
    jQuery(function($){
 
        // タクソノミ選択チェックボックスをラジオボタンに
        $(".categorychecklist input[type=checkbox]").each(function(){
            $(this).attr("type","radio");
        });
 
        // タクソノミIDとタクソノミ名を配列に定義
        var tax_arr = new Array();
        tax_arr['#in-tax_estate-6'] = '売買物件';
        tax_arr['#in-tax_estate-7'] = '賃貸物件';
 
        // タクソノミクリック時の処理
        $("input[name^=tax_input]").live("click", function(){
            $("input[name^=tax_input]").each(function(){
                if ( $(this).is(':checked') == true ) {
                    taxid = $(this).val();
                    taxname = tax_arr['#in-tax_estate-'+taxid];
                    return false;
                }
            });
            $("#acf-field-sellrent-"+taxname).attr('checked', 'checked');
        });
 
        // カスタムフィールドのラジオボタンクリック時の処理
        $("[id^=acf-field-sellrent-]").live("click", function(){
            $("[id^=acf-field-sellrent-]").each(function(){
                if ( $(this).is(':checked') == true ) {
                    taxname = $(this).val();
                    return false;
                }
            });
            for (var key in tax_arr) {
                if ( tax_arr[key] == taxname ) taxid = key;
            }
            $(taxid).attr('checked', 'checked');
        });
 
    });
    //]]>
</script>
<?php
    endif;
}
add_action('admin_print_footer_scripts', 'my_print_footer_scripts', 21);

商品 車販売 ブログ と検索と結果のページを分ける方法

検索フォームと検索結果ページを複数設置する

ここ参考

まず車はポストタイプカー

<div class="search_box">
<form role="search" method="get" id="searchform" action="/" >
<input type="text" value="<?php the_search_query(); ?>" name="s" class="s" />
<input type="hidden" name="post_type" value="car">
<input type="submit" class="searchsubmit" value="" />
</form>
</div>
<?php //if(function_exists('wp_custom_fields_search')) wp_custom_fields_search(); ?>
</div>

welcartは商品カテゴリ内 ポストタイプポスト

       <div class="search_box">
<form role="search" method="get" id="searchform" action="/" >
<input type="text" value="<?php the_search_query(); ?>" name="s" class="s" />
<input type="hidden" name="post_type" value="post">
 <input type="hidden" name="cat" id="cat" value="287" />
<input type="submit" class="searchsubmit" value="" />
</form>
</div>
<?php //if(function_exists('wp_custom_fields_search')) wp_custom_fields_search(); ?>
</div>

//ブログは商品カテゴリ除外

 <div class="search_box">
<form role="search" method="get" id="searchform" action="/" >
<input type="text" value="<?php the_search_query(); ?>" name="s" class="s" />
<input type="hidden" name="post_type" value="post">
 <input type="hidden" name="cat" id="cat" value="-287" />
<input type="submit" class="searchsubmit" value="" />
</form>
</div>
<?php //if(function_exists('wp_custom_fields_search')) wp_custom_fields_search(); ?>
</div>

検索結果は
ポストタイプごとに分けれるらしい
earch-投稿タイプ名.php” というテンプレートが使えるようになります。

add_filter('template_include','custom_search_template');
function custom_search_template($template){
  if ( is_search() ){
    $post_types = get_query_var('post_type');
    foreach ( (array) $post_types as $post_type )
      $templates[] = "search-{$post_type}.php";
    $templates[] = 'search.php';
    $template = get_query_template('search',$templates);
  }
  return $template;
}

ブログ結果添付内で
商品ならで違うフォームにとばしてリターンさせてブログはわけれそう

但し、車のファンクションで
is serch でメインクエリかけてる部分があるので
それを入れてるとブログの検索結果が除外されてしまうので
そこは検証

// サーチ ページ数
    if ( $query->is_search() && $query->is_main_query() ) {
$query->set('posts_per_page', 12 );
 $query->set( 'meta_key', 'car_open' );
 $query->set( 'orderby', 'meta_value_num' );
 $query->set( 'order', 'ASC' ); //数値が低い順
  }

これが問題なようだ

// サーチ ページ数
    if ( $query->is_search() && $query->is_main_query() ) {
$sortset = (string)filter_input(INPUT_POST, 'post');
	if ($sortset == 'car' ){
$query->set('posts_per_page', 12 );
 $query->set( 'meta_key', 'car_open' );
 $query->set( 'orderby', 'meta_value_num' );
 $query->set( 'order', 'ASC' ); //数値が低い順
  }
		}

としてpostがカーのときのみこれが効く様にした。

どうやらINPUT_POSTでなく INPUT_GETなようだ

xhtmlからhtml5に変えた時のline-hightの仕様

div内にspanでフォントサイズ調整したものは
いままでline-hightがそのサイズのline-hightをもっていたが

html5に変えると
親のdivの持っているフォントサイズのline-hightをもつことになる。

そのため
divでくくってやるとよい

body 1.55 単位なしで指定

若干 メニューやリストの高さも違う?

後日調べた結果
http://gakublog.com/archives/667
まず

img {
  vertical-align: bottom;
}

メニューのリスト等のサイズが変わる問題
これはアイコンフォントにフォントサイズが指定してあるから、

いままではアイコンフォントがはみ出していても無視されたが
今回は無視されない?
アイコンフォントを disoplay インラインblock にしてやるとよい ではなく
フォントサイズを指定しないか 100%にしてやること

あと FBのボタンがずれるので

.fb_iframe_widget > span {
	vertical-align: baseline !important;
}

【CSS】Facebookの「いいねボタン」の位置がズレる時の対処法