ssl まるせ 手順 さくらサーバー から シンサーバー

桜のサーバーでssl認証
ポイント さくらの httaccessで https強制転送入ってると リダイレクトで認証できないので、sslの転送はずす
とできた。

新サーバーにて、サイト構築 ドメインが当たったら 機能するように準備

データベース ドメイン設定
wp DB設定

ドメインがあたったら

記事内のURLを全て変更
後、リダイレクト処理を埋め込む

WordPressを引っ越す際のメモ【パーマーリンクを日付からタイトルに変更】

htaccess リダイレクト 上から順番に処理される

ページのリダイレクトを忘れて、後で検索を確認しながらやった。

wp/aaa/ を /ccc/に転送すると
wp/aaa/bbb/ 二アクセスの場合 wp/ccc/bbb/ となるので
wp/ccc/bbb/ /ddd/とした

しかし、
順番で、
wp/aaa/bbb/ を /ddd/
wp/aaa/ を /ccc/
と順番ですれば、問題なかったみたい

月間アーカイブ
は最後に入れて、
wp/ を /に変えてOK

メールがローカル配送を行うので、転送のさい、
小一時間ほど、さまよって、
あとから届いた。

桜のdns  aレコードを変えたら1秒で切り替わった

メールもxserver シンサーバー以外はすぐ届いたので
ローカル配送が問題。
メールアドレスを1つもtyくらなければOKらしい

ねんおため mxレコd−をさくらにかえたが 結局時間の問題で届いたよう

Redirectionは成功した。

Smash Balloon Instagram Feed

2024年12月 なんたらで

更新して、再接続したけど

シュガーだけ全く表示されない

 

答え、やはり古いjクエリだった あと、 古いjs へっだにあるやつ2個削ったらでた

一度プラグ削除設定削除で入れ直したけどだめ・

 

なぜ、

リンクは入ってるみたいだけど画像がない。

full と うすい は無事

なんだろ

 

あとはwpのバージョンか

時間まちか

welcart クレジット 設定流れ ソニーペイメント sony

1.メンテナンス中でもテスト本番決済できる

2.テストカードで決済したアカウントは本番環境で使えない可能性大

3.本番環境では新しくユーザーを設定

4.与信にしていれば、デビットカードもすぐ戻って来る

5 手引 クレジットカードページ内の情報はお客毎に違うから、毎度変える そのままみせたらあかん 機器登録終わったら、管理画面の認証コード消す ねんのため

 

流れ、

クレジットの情報を入れる

管理画面

テスト環境 本番環境 テストクレジット 全て同じエクセルファイルにある。

テストして、本番に変えてやったらエラーで、できなかったから

アカウント変えてもできなくて、しばらく経って、またテストでできて。

本番に変えてアカウント変えたらできた。

 

 

 

会費ペイ、まとめ

▼管理画面情報▼
URL: https://www.kaihipay.jp/admin/login?system_code=2878663814834437

▼初期設定▼
初期設定マニュアル: https://bit.ly/2QCPqkz
初期設定動画: https://youtu.be/rYymWhyLE30

▼全般の操作・補足資料▼
操作マニュアル: https://kaihipay.zendesk.com/hc/ja
口座振替利用可能金融機関一覧: http://www.mizuho-factor.co.jp/dl/pdf/ec-service-01.pdf
何か有りましたら下記までお問い合わせください。
それでは今後ともよろしくお願い申し上げます。

———————————————————————————
会費ペイ カスタマーサクセスチーム
お問い合わせフォーム: https://kaihipay.zendesk.com/hc/ja/requests/new
———————————————————————————

※本メールの送信アドレスは送信専用となっておりますので、
このメールへの返信によるご質問、お問い合わせにはお答えしかねます。

 

5500円登録

https://www.kaihipay.jp/forms?form_code=6647629828846881

全体

https://www.kaihipay.jp/admin/forms/pull?system_code=2878663814834437

口座振替をWEBで登録できるのは個人のみ

https://kaihipay.zendesk.com/hc/ja/articles/360035156653-WEB%E4%B8%8A%E3%81%A7%E7%99%BB%E9%8C%B2%E3%81%A7%E3%81%8D%E3%82%8B%E5%8F%A3%E5%BA%A7%E3%81%A8%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E5%8F%A3%E5%BA%A7%E3%81%AE%E9%81%95%E3%81%84%E3%81%AF

 

会費ペイ手数料計算

5500円の場合

5500×0.035 = 192.5円 + 100円 = 293円  年 3516

11000×0.035 = 385円 + 100円 = 485円  年 5820

口座振替の場合 初回500円

 

リリースの手数料は

1件110円   121円税込み   年 1452

welcart メンテナンスモード分岐 

function//function.phpを参考に

function get_welcart_system_information() {
    global $usces, $usces_settings;

    $options             = get_option( 'usces', array() );
    $options_ex          = get_option( 'usces_ex', array() );
    $indi_item_name_text = array(
        'item_name' => 'item name',
        'item_code' => 'item code',
        'sku_name'  => 'SKU name',
        'sku_code'  => 'SKU code',
    );
    return array(
        'version'                        => USCES_VERSION,
        'total_items'                    => $usces->get_items_num(),
        'total_sku'                      => array_sum( usces_get_stocs() ),
        'maintenance_mode'               => ( isset( $options['display_mode'] ) && $options['display_mode'] == 'Maintenancemode' ) ? true : false,
        'campaign_schedule'              => $options['campaign_schedule'],
        'order_mail'                     => $options['order_mail'],
        'sender_mail'                    => $options['sender_mail'],
・・・
<?php  //メンテナンスモードか判断
$welcart_options  = get_option( 'usces', array() );
$my_display_mode = $welcart_options['display_mode'];

if($my_display_mode == 'Maintenancemode' && !is_user_logged_in())://メンテナンスモードで、かつログインしていない場合
 ?>


<p class="center"><br>只今<br>ショップメンテナンス中です。<br>
もうしばらくお待ち下さい。<br><br></p><!-- /.center -->

<?php  else: //通常営業?>

<?php endif; ?>

 

 

the_content(); 全てメンテナンスになるため、ブログも表示されなくなるため

shingle_blog_con.phpに分岐

<?php  //welcart メンテナンスモードか判断
$welcart_options  = get_option( 'usces', array() );
$my_display_mode = $welcart_options['display_mode'];
if($my_display_mode == 'Maintenancemode' && !is_user_logged_in())://メンテナンスモードで、かつログインしていない場合
 ?>
 
 <?php //the_content(); 

// 本文を取得
$content = get_the_content();
// $content = apply_filters( 'the_content', $content );
// $content = str_replace( ']]>', ']]&gt;', $content );
// the_content()と同じフィルターを適用済み
echo $content;


?>
<?php  else: //通常営業?>

  <?php the_content(); ?>
  
<?php endif; ?>

 

welcartの翻訳を変更する。 アップデート影響されない

WordPressの翻訳データ(.mo)をアップデートに影響されず部分的にオーバーライドしたい

https://poedit.net/

【Poeditの使い方】WPテーマやプラグインを日本語化する翻訳エディタ

を参考。

 

まずは元々の翻訳データ元ファイル(.po)を子テーマのディレクトリにコピー

まずは、ウェルカートプラグインの翻訳データ、poファイルを任意のディレクトリにコピーします。

今回の例では、子テーマフォルダのlanguageフォルダにコピーしました。
コピーするフォルダは、wordpressのプラグインやテーマ等のアップデートでデータが消えてしまわないような場所が好ましいかと思います。

最終的にファイルの場所をfunctions.phpから指定するので、最悪どこだっていいです。
わかりやすく管理しやすくかつアップデートの影響を受けない場所なら。

 

 

必要な翻訳だけを自作で
この編集したpoファイルに記述されている翻訳が反映され、そこに無いものが、オリジナルの翻訳(元のデータ)が反映されることになります。
翻訳データがアップデートされることは稀かもしれませんが、アップデートの内容を極力利用しつつ、ここだけは譲れないって文言だけを反映させることができます。

 

 

開いたpoファイルのヘッダー部分を残して、その他は全て削除し、変更後の翻訳行のみ残して保存します。

今回の例では下記のようなファイルになりました。

ヘッダー部分は、コピー元のデータによって様々かと思いますので、下記とは全く同じではありません。

msgid ""
msgstr ""
"Project-Id-Version: Welcart e-Commerce\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-01-20 00:00+0900\n"
"PO-Revision-Date: 2019-03-04 16:11+0900\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 1.5.7\n"

msgid "Admit to send it with this information."
msgstr "プライバシーポリシーに同意の上、上記内容を送信する"

 

msgid “Admit to send it with this information.”
msgstr “プライバシーポリシーに同意の上、上記内容を送信する”
これで下準備はOK。

 

 

保存した.poファイルをコンパイルして、.moファイルを書き出します。

ここで登場するのが、Poedit。

PoeditをPCにインストールして、保存したファイルを開きます。

開いたら、ファイル→MOにコンパイル
で、同じ階層にmoファイルを書き出します。

これで、翻訳データの準備が完了しました。

あとは、functions.phpに、翻訳データのオーバーライド指定を追記するだけでOKです。

流れとしては、既にプラグインからload_textdomainにて読み込まれている翻訳データをアンロードします。

アンロードした上で、自作の翻訳データを読み込ませ、さらに、オリジナル(元の翻訳データ)を読み込みます。

こうすることで、まずは、自作の翻訳データが適用され、そこに無いものに関しては、オリジナルの翻訳データが利用されることになります。


/***ウェルカート翻訳ファイルをオーバーライド***/

//ウェルカートプラグインのテキストドメインを指定
$welcart_text_domain = 'usces';

//オリジナル(元の)翻訳データ
$welcart_original_mofile = WP_PLUGIN_DIR.'/usc-e-shop/languages/'. $welcart_text_domain.'-ja.mo';

//変更後の自作翻訳データ(任意)※例では利用している子テーマのlanguagesフォルダ
$welcart_override_mofile = get_stylesheet_directory().'/languages/'.$welcart_text_domain.'-ja.mo';

//読み込まれている翻訳データをアンロード
unload_textdomain($welcart_text_domain);

//変更後の自作翻訳データをロードする
load_textdomain($welcart_text_domain, $welcart_override_mofile );

//オリジナル(元の)翻訳データをロードする
load_textdomain($welcart_text_domain, $welcart_original_mofile );

以上を、functions.phpに追記します。
追記箇所はどこでも良いかと思います。

保存して、サーバーにアップロードしたら完了です。

変更した箇所のみが、変わっていることが確認できたらOKです。

 

welcartで管理画面の文字を強制変更 商品編集画面のときだけという分岐つき 

これをやったが、適応って文字とか他にも使われている文字も変更になるので、
翻訳を変更するので対応。

親クラスを指定できれば良いのだが、。

 //管理画面の商品画像部分の文字変更
//変更内容
 // 大文字と小文字を区別する場合は「str_replace」を使用する
function po_file_text_change_hook_script( $translated ) {
      //$translated = str_ireplace('投稿一覧', '作成済み記事一覧', $translated);//大文字小文字区別なし
      $translated = str_replace('ファイル', '選択中', $translated);//大文字小文字区別
    return $translated;
}

//定義  admin.php(プラグイン拡張ぺーじ)のみ定義する
  if( is_admin() ){
    global $pagenow;
    $request_uri = $_SERVER['REQUEST_URI'];
    if( $pagenow == 'admin.php' ){
// 管理画面内にある文言のみ置換するため
if( strpos($request_uri,'page=usces_itemedit') !== false ){
           

      add_filter('gettext', 'po_file_text_change_hook_script');
      add_filter('gettext_with_context', 'po_file_text_change_hook_script');
      add_filter('ngettext', 'po_file_text_change_hook_script');
      add_filter('ngettext_with_context', 'po_file_text_change_hook_script');

    }
    }
}

参考

ワードプレスの管理画面内にある文言を強制的に置き換えるカスタム

// 管理画面内にある文言のみ置換するための条件分岐を追加する
if ( is_admin() ) {
    add_filter('gettext', 'po_file_text_change_hook_script');
    add_filter('gettext_with_context', 'po_file_text_change_hook_script');
    add_filter('ngettext', 'po_file_text_change_hook_script');
    add_filter('ngettext_with_context', 'po_file_text_change_hook_script');
}

// 大文字と小文字を区別する場合は「str_replace」を使用する
function po_file_text_change_hook_script( $translated ) {
    $translated = str_ireplace('投稿一覧', '作成済み記事一覧', $translated);
    $translated = str_replace('MenuTest', 'メニューテスト', $translated);
    $translated = str_ireplace('メニューを閉じる', 'アイコンのみ表示', $translated);
    return $translated;
}

https://lunaris-code.com/web/1253/

https://tech.ayataka.blog/?p=325

if( is_admin() ){
    global $pagenow;
    $request_uri = $_SERVER['REQUEST_URI'];
 
    //カテゴリ・タグ編集ページ
    if( $pagenow == 'edit-tags.php' ){
        //カテゴリーの処理
        if( strpos($request_uri,'taxonomy=category') !== false ){
           
        }
        //タグの処理
        if( strpos($request_uri,'taxonomy=post_tag') !== false ){
           
        }
    }
}

 

平針の記事だけ電話番号変更

シングル

<?php if ( is_single(3698) ): ?>

  <?php $a3698yes = 'yes'; ?>

  <?php else: ?>

    <?php $a3698yes = ''; ?>

  <?php endif; ?>
  
          

<?php
if ( have_posts () ) :
    while ( have_posts() ) :
        the_post();
?>

フッター

<?php  //global $post;
if ( $a3698yes ): ?>

    <a href="tel:0528013211" class="fmtel_base">

    <div class="tel_numb2"><i class="icon-phone"></i>052-801-3211<br>
        <div class="tel_okigaru2">お問い合わせは<br>平針運転免許試験場へ
        </div>
    </div>
    
    </a>

    <?php else: ?>

<a href="tel:<?php echo str_replace(array('-', 'ー', '−', '―', '‐'), '', $shop_tel);?>" class="fmtel_base">

    <div class="tel_numb2"><i class="icon-phone"></i><?php echo $shop_tel ; ?><br>
        <div class="tel_okigaru2">平日 10:00〜16:00 担当 渡邊<br>お気軽にお問合せください
        </div>
    </div>
    
    </a>

    <a href="<?php echo $contact_slug; ?>" class="mob_footer_mail_bt_wrap">
                    
                
                    <div class="mfwrap">
                            <div class="mail_icon"><i class=" icon-mail-alt"></i></div>
                            
                            <div class="mail_con">無料相談フォーム</div>
    
                            </div>
                
        </a>

        
    
    <?php endif; ?>

 

//global $post;も効かず、

is_single(3698)もフッターでは効かず。

たぶん yarppがかんでるからか

$postがリセットされて is_single(3698)が効かないので

シングル頭で値をもたせた。

 

清水建築 動画背景 ストライプ MAC BOOK とipadで ストライプがきれいに出ない 重なったり違和感問題の解決方法

サイズ、svgに変換等しても解決ならず、

ちなみに、ユーザーエージェント分岐を入れたが、なぜかipadで背景変わらなかった

クロームのユーザーエージェント偽装ではうまくいってたが、

ヘッダー

<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) {
  //スマホ用CSSを読み込む ?>

  <link href="<?php echo get_template_directory_uri(); ?>/mobile.css" rel="stylesheet" type="text/css" />

<?php } elseif ((strpos($ua, 'Android') !== false) || (strpos($ua, 'iPad') !== false)) {  
    //タブレット用CSSを読み込む?>

 
  <link href="<?php echo get_template_directory_uri(); ?>/tablet.css" rel="stylesheet" type="text/css" />

<?php } else { 
    //PC用CSSを読み込む ?>




<?php } ?>

 

css

@charset "utf-8";


/* .video-wrap {
    .pattern {


        background-image: url(/wp-content/themes/newD-child/img/bg/kv_bg.png);
        background-size: 6px 6px;
        background-repeat: repeat;

    }} */

 

そんで、結局、

画像に隙間をつくることで なんとか重なりを軽減

ipad macbook は多分、無理くり解像度を出してるので、

ピクセルが合わないのではないかと思われる

10px 20px このsvgを

 

  .pattern {
    width: 100%;
    height: 100%;
    pointer-events: none;
    
  //background-image: url(/wp-content/themes/newD-child/img/bg/yokojima.svg);
  background-image: url(/wp-content/themes/newD-child/img/bg/yokojima_10.svg);
 background-size: 1px 3px;
  background-repeat: repeat;
  
    //position: fixed;
  position: absolute;
  z-index: 2;
  filter: opacity(60%);

  @media screen and (max-width: 736px){

    background-image: url(/wp-content/themes/newD-child/img/bg/yokojima_mob.png);
    filter: opacity(100%);

    //background-size: 1px 2px;//横 縦
    background-repeat: repeat;
}//@media screen 736px

これが今の正解

モバイルは分岐

それ以外はすべて 1px 3pxに変更した上記svgです。

swiper 複数使うときの まとめ 扱いやすく マスター 苦手意識 消す

まず、必要なのは、

フッターに これがjs

<?php //スワイパー 
///実際のコンテンツより下でないと下でないと機能しないのでフッター
?>

<script src="<?php echo get_stylesheet_directory_uri(); ?>/2_head/swiper/swiper-bundle.min.js"></script>

 

そして、この下にそれぞれのスワイパーの設定を書いていく。 ポイントは

const swiper_youtube = new Swiper(“.swiper_youtube”, {

両方とも変える 独自なものに

<script>
const swiper_youtube = new Swiper(".swiper_youtube", {
//こっちがモバイル 兼 PC
slidesPerView: 1,/* コンテナ内に表示させるスライド数 */
  //slidesPerView: 1.45, // コンテナ内に表示させるスライド数(CSSでサイズ指定する場合は 'auto')
  //centeredSlides: true, // アクティブなスライドを中央に配置する
  //spaceBetween: 32, // スライド間の余白(px)
  // loop: true,
  speed:1000,//矢印クリック 自動再生で 動く速度 多いほうが遅く
  //initialSlide: -1,// 0スタートで表示順調整

  // autoplay: {
  //   delay: 3000, // スライドの自動再生速度調整 2000 = 2秒
  //   disableOnInteraction: false,
  //   resistanceRatio:0.1,
  // },
  
  breakpoints: { // こっちがPC
      737: { // 画面幅px以上で適用 ブレークポイント
     slidesPerView: 'auto', //autoにするとcssで指定したサイズで表示
      //slidesPerView: 3,
        //spaceBetween: 0, // スライド間の余白(px)
      
    }
  },
  
// ページネーション
// pagination: {
//     el: ".swiper-pagination",
//     clickable: true,
//   },
  // 前後の矢印
  navigation: {
    nextEl: ".swiper-button-next",//このクラスがあればそこがナビになる
    prevEl: ".swiper-button-prev",//このクラスがあればそこがナビになる
    
  },
});
</script>

 

そんで、今回間違えたが、

スワイパーを実際設置するところで swiper swiper_youtube とswiperも生きで、独自のスワイパークラスを追加すること

また、書くcssを変更したいためにスワイパーの大枠をyoutube_swipwe_wrapで囲う

<div class="youtube_swipwe_wrap">

<div class="swiper_wrap_wrap">
    <div class="swiper swiper_youtube">
  <!-- 必要に応じたwrapper -->
  <div class="swiper-wrapper">
    <!-- スライド -->

    <div class="swiper-slide"><div class="youtube_box">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/-pkaJrrotRY?si=z9rdrhs1NAK-lpt8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div></div>

    <div class="swiper-slide">
    <div class="youtube_box">
<iframe width="560" height="315" src="https://www.youtube.com/embed/AMu3zeWWAP4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div>
</div>

<div class="swiper-slide">
    <div class="youtube_box">
<iframe width="560" height="315" src="https://www.youtube.com/embed/rsTOy_RLPvo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</div>

    </div>

    </div>
  <!-- 必要に応じてページネーション -->
  <div class="swiper-pagination"></div>
  <!-- 必要に応じてナビボタン -->


</div>


<div class="swiper-button-prev"></div>
  <div class="swiper-button-next"></div>

</div>
    
</div><!-- /.youtube_swipwe_wrap -->

 

CSSはベースのスワイパーが効いてる

ヘッダー

<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/2_head/swiper/swiper-bundle.min.css"/>

それを、各wrapで囲んだlessで変更する。

.youtube_swipwe_wrap{

///pre nextを外に出すため囲む
.swiper_wrap_wrap{position: relative;
  max-width: 92%;
  margin-left: auto;
  margin-right: auto;
}
//cssで位置移動
.swiper-button-next, .swiper-rtl .swiper-button-prev {
  right: -40px;
  @media screen and (max-width: 736px){
      right: -30px;
  }//@media screen 736px
}
//cssで位置移動
.swiper-button-prev, .swiper-rtl .swiper-button-next{
  left: -40px;

  @media screen and (max-width: 736px){
      left: -30px;
  }//@media screen 736px
}

//矢印の色替え
.swiper-button-next,
.swiper-button-prev {
  --swiper-navigation-color: #858585; //ここに変更する色を指定
}

//youtubeiframe

.swiper_wrap_wrap{

  .youtube_box{width: 100%; aspect-ratio: 16 / 9;

      display: grid;


      @media screen and (max-width: 736px){
          width:100%; 
      }//@media screen 736px

      iframe {
          width: 100%;
          height: 100%;
      }
  
  }


}


.swiper-wrapper {
  /* wrapperのサイズを調整 */
  width: 100%;
 // height: 300px;

  
}

.swiper-slide {
  /* スライドのサイズを調整、中身のテキスト配置調整、背景色 */
  color: #ffffff;
  width: 47%;
  height: 100%;
  text-align: center;
  //line-height: 300px;
  margin-right: 1.5%;
  margin-left: 1.5%;

  @media screen and (max-width: 736px){
//1個fだとページ送りで隙間ができるから
      margin-right: 0%;
      margin-left: 0%;

  }//@media screen 736px
  
}

}

こんな感じ 以上 これで、それぞれのスワイパーをコントロールできる

フィルター メモ

&.bokashi{ 
 .tw100_bg_img{
         img{
     filter: blur(3px);//ぼかし
 }
 }
 }
 &.saido{

     .tw100_bg_img{
         img{
       filter: saturate(80%);//彩度
 }
 }

 }
 &.bright{
     .tw100_bg_img{
         img{
 filter: brightness(130%);//輝度 明るくなる
         }
     }
 }

 &.contrast{
     .tw100_bg_img{
         img{
             filter: contrast(200%);//コントラスト 明るくなる
         }
     }
 }

 &.gray{
     .tw100_bg_img{
         img{
             filter: grayscale(100%);//モノクロ 彩度と反対
         }
     }
 }

 &.sepia{
     .tw100_bg_img{
         img{
             filter: sepia(88%);//セピアカラー
         }
     }
 }

 

welcart テーマファイル

welcart テーマファイルの問題点、

テーマフォルダ内に

wc_templates

を作成、その中に

cart

member

その他ファイルで稼働するが、

多分、welcartがプラグインフォルダからか、一度取得するためか、

サイト特有に持たせてあるカスタムフィールド値を持っていない。

試しに、

wc_templatesの中のwc_cart_page.phpのスタートに

$footer_sale=”12″;

と持たせても、

ヘッダーで処理される$footer_saleな分岐が稼働しない。ないですよとなる。

admin_siteで作った色々なセッティングを読み込みできないので、

wc_cart_page.phpを

<?php include(get_stylesheet_directory(). "/4_custom/welcart/page_welcart.php"); ?>

/4_custom/welcart/page_welcart.phpを

<?php 

include(get_template_directory() . "/func/admin_site.php");

//welcart のカテゴリ
$welcart_cat= 877;
$welcart_cat_out= -877;

$itemreco = 878;
$itemnew = 879;

//商品ジャンルのカテゴリ
$welcart_genre= 880;

$souryou_muryou = '4400';



include(get_template_directory() . "/5_head/d_0_header.php");?>



<body id="welcart_body" class="welcart_top">

と始めたらなんとか動いた。

 

ただ、カート内のテンプレートはすべてのページ作る必要がある

また、シングルもこれで作らないと、

skuセレクト

商品バリエーション プラグイン

もつかえなさそう?

welcart バージョアップ時

まずはカートページがリセット

templates/cart/cart.php/カート
税込み表示 追加
        </tr>';
    
    //税込み 追記	
     $total_price = usces_total_price('return') - usces_order_discount('return');
    $tax = $this -> getTax( $total_price );
    
    $cart_table_footer .='
    <tr>
    <td class="num">&nbsp;</th>
    <td class="thumbnail ">&nbsp;</th>
        <td colspan="3" class="aright">'.usces_tax_label(array(), 'return').'</td>
        <td class="aright">'. usces_crform($tax, true, false,'return').'</td>
        <td class="stock">&nbsp;</th>
            <td class="action">&nbsp;</th>
    </tr>

    <tr>
    <tr><th class="num">&nbsp;</th>
    <th class="thumbnail">&nbsp;</th>
        <th colspan="3" class="aright">税込合計<em class="tax">(税込)</em></th>
        <th class="aright">'.
        usces_crform(($total_price + $tax), true, false, 'return'). '</th>
       <th class="stock">&nbsp;</th>
            <th class="action">&nbsp;</th>
    </tr>';

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

さらにシングルページもデフォルトカートが出現

templates/single_item.php を

<?php
    $html .= $content."\n";

?>

 

その他は変える必要なかったが、

過去色がついていたファイル

confirm.php はポイント??使ってないんで未確認 違いがなかった

usces_cart.cssも色ついてるけど??

けんしょうすると、welcart.less にて上書きしているようで、今はいらないようだ。

施工例 いれる 入れる 流れ 自分テーマ

チルドのファンクにて 整理 newびるど

// KEN設計 事例
require_once locate_template('4_custom/newlybuilt/newlybuilt_func.php');

カテゴリのみ built-chiiki/愛知県/

となってる

\その他スラッグ上書きできる

 

ほぼ、テーマ変更による 不具合ばかりだったが、

今回は入れ込んでないcssをクライアントlessに書き込んだのであとで、整理

 

また、flickSlider2.jsを利用しており、

1500に対応させた。

 

その際、carが効いていて、そのおかげで、うまく表示できていた部分があったので、

ba_sekou.lessに追記 また、carなしでも表示できた

carの表記では1500に対応できなくなるので、max hight削除する

スマホでクロームのみ分岐させ、cssを適用する

if_mob_chorome.css

@charset "utf-8";


.footer_call .flex_wrap {padding-bottom: 12px;}

if_mob_chorome.php

<script>

var path = "<?php echo get_template_directory_uri(); ?>";

var userAgent = window.navigator.userAgent.toLowerCase();
    
if(userAgent.indexOf('msie') != -1 || userAgent.indexOf('trident') != -1) {
    //IE向けの記述
}else if(userAgent.indexOf('edge') != -1) {
    //旧Edge向けの記述
}
else if(userAgent.indexOf('chrome') != -1) {
        // //Googleクロームへの処理
        // var d = document;
        // var link = d.createElement('link');
        // link.href = path + '/if_mob_chorome.css';
        // link.rel = 'stylesheet';
        // link.type = 'text/css';
        // var h = d.getElementsByTagName('head')[0];
        // h.appendChild(link);

}
else if(userAgent.indexOf('crios') != -1) {
        //iOS Googleクロームへの処理
        var d = document;
        var link = d.createElement('link');
        link.href = path + '/if_mob_chorome.css';
        link.rel = 'stylesheet';
        link.type = 'text/css';
        var h = d.getElementsByTagName('head')[0];
        h.appendChild(link);

}

else if(userAgent.indexOf('safari') != -1) {
    //Safari向けの記述
}else if(userAgent.indexOf('firefox') != -1) {
    //FireFox向けの記述
}else{
    //その他のブラウザ向けの記述
}


</script>

 

ヘッダー

<?php ////////////////////////上書きcss ブラウザで判別
include(get_template_directory() . "/5_head/if_mob_chorome.php"); ?>

参考

path +

https://zenn.dev/itooo_web/articles/8d37f720e73c98

 

https://kaworu.jpn.org/kaworu/2008-05-24-2.php

 

ここに複数 でもうごくか?

外部CSSファイルをJavascriptから読み込む方法

 

https://arts-factory.net/useragentbrowser/

my_lazy_lode loading=”lazy”が効かないからさ

<div class="ggmap2 my_lazy_lode ">
<iframe loading="lazy" src="https://www.google.com/maps/d/embed?mid=1u1_RQyQSZ0TKAJhA_6oCqqUjPHQm3TSx&ehbc=2E312F" width="640" height="480" ></iframe>
    </div><!-- /.ggmap -->
.my_lazy_lode{display: none;
 &.on{display: block;}
 }

display: noneしたコンテンツ内のgooglemapはロード時に読み込まれないので、ページ表示速度が上がる

フッターにこれも追加

//なんでも使えるように .my_lazy_lode が画面に入ったら onがつく  .my_lazy_lode.on
$('.my_lazy_lode').each(function(){
    var elemPos = $(this).offset().top;
    var scroll = $(window).scrollTop();
    var windowHeight = $(window).height();
       
     // スマートフォン向けの記述
if (navigator.userAgent.indexOf('iPhone') > 0 || navigator.userAgent.indexOf('Android') > 0 && navigator.userAgent.indexOf('Mobile') > 0) {
        if (scroll > elemPos - windowHeight - 500){
     $(this).addClass('on');
    }
       
    // タブレット向けの記述
} else if (navigator.userAgent.indexOf('iPad') > 0 || navigator.userAgent.indexOf('Android') > 0) {
        
        if (scroll > elemPos - windowHeight - 500){
     $(this).addClass('on');
    }
} else {
        // PC向けの記述
        if (scroll > elemPos - windowHeight - 500){
     $(this).addClass('on');
    }
}


   } );

//

 

swiper 複数 ループ 無理やり

html

<?php //swiper

$imgs_number  = 'imgs';
$gallery_title  = '女性ドライバー専用車両';
  include(get_stylesheet_directory() . "/2_head/swiper/swiper_gallery.php");  ?>

swiper html ループ 固定ページのAFCギャラリー

<?php 
//前ページで設定
//$imgs_number  = 'imgs2';
//$gallery_title  = '女性専用設備';

//include(get_stylesheet_directory() . "/2_head/swiper/swiper_gallery.php"); ?>






<div class="swiper_wrap_wrap gallery_swiper_wrap inview fadeInBottom " >
    <div class="swiper gallery_swiper gallery_swiper_<?php echo $imgs_number ?> ">
  <!-- 必要に応じたwrapper -->
  <div class="swiper-wrapper">
    <!-- スライド -->

    <?php
$imgs = get_field($imgs_number);



$i = 0; //最初用
foreach ($imgs as $img):
    $attachment_id = $img['id'];
                $img_url = wp_get_attachment_image_src($attachment_id, 'd_slider_img_size');
    $i++; //画像が合計2個以内のときはフォーチを2回させたい

    ?>


    <div class="swiper-slide">

<div class="img_box">
<img src="<?php print $img_url[0];?>" width=""  class=" " alt="<?php echo $gallery_title ?>|<?php echo $alt1; ?> ">
        
    </div><!-- /.img_box -->
    </div>

    <?php //endループフィールド

endforeach;
?>

    </div>

  <!-- 必要に応じてページネーション -->
  <div class="swiper-pagination"></div>
  <!-- 必要に応じてナビボタン -->

</div>


<div class="swiper-button-prev <?php echo $imgs_number ?>_pre"></div>
  <div class="swiper-button-next <?php echo $imgs_number ?>_next"></div>

</div>


フッターすぅリプと 3_css_js_foot.php     child

<?php ////////////////////////個ページ ギャラリー 同じページ内でswiperのナビが連動してしまうので、無理やり・・・・・  ?>
<script>
//ギャラリーimgs
const gallery_swiper_imgs = new Swiper(".gallery_swiper_imgs", {
//こっちがモバイル 兼 PC
slidesPerView: 1,/* コンテナ内に表示させるスライド数 */
  //slidesPerView: 1.45, // コンテナ内に表示させるスライド数(CSSでサイズ指定する場合は 'auto')
  //centeredSlides: true, // アクティブなスライドを中央に配置する
  //spaceBetween: 32, // スライド間の余白(px)
  // loop: true,
  speed:1000,//矢印クリック 自動再生で 動く速度 多いほうが遅く
  //initialSlide: -1,// 0スタートで表示順調整

  // autoplay: {
  //   delay: 3000, // スライドの自動再生速度調整 2000 = 2秒
  //   disableOnInteraction: false,
  //   resistanceRatio:0.1,
  // },

  breakpoints: { // こっちがPC
      737: { // 画面幅px以上で適用 ブレークポイント
     slidesPerView: '2', //autoにするとcssで指定したサイズで表示
      //slidesPerView: 3,
        //spaceBetween: 0, // スライド間の余白(px)

    }
  },

// ページネーション
// pagination: {
//     el: ".swiper-pagination",
//     clickable: true,
//   },
  // 前後の矢印
  navigation: {
    nextEl: ".imgs_next",//このクラスがあればそこがナビになる
    prevEl: ".imgs_pre",//このクラスがあればそこがナビになる

  },
});

</script>

<script>
//ギャラリーimgs2
const gallery_swiper_imgs2 = new Swiper(".gallery_swiper_imgs2", {
//こっちがモバイル 兼 PC
slidesPerView: 1,/* コンテナ内に表示させるスライド数 */
  //slidesPerView: 1.45, // コンテナ内に表示させるスライド数(CSSでサイズ指定する場合は 'auto')
  //centeredSlides: true, // アクティブなスライドを中央に配置する
  //spaceBetween: 32, // スライド間の余白(px)
  // loop: true,
  speed:1000,//矢印クリック 自動再生で 動く速度 多いほうが遅く
  //initialSlide: -1,// 0スタートで表示順調整

  // autoplay: {
  //   delay: 3000, // スライドの自動再生速度調整 2000 = 2秒
  //   disableOnInteraction: false,
  //   resistanceRatio:0.1,
  // },

  breakpoints: { // こっちがPC
      737: { // 画面幅px以上で適用 ブレークポイント
     slidesPerView: '2', //autoにするとcssで指定したサイズで表示
      //slidesPerView: 3,
        //spaceBetween: 0, // スライド間の余白(px)

    }
  },

// ページネーション
// pagination: {
//     el: ".swiper-pagination",
//     clickable: true,
//   },
  // 前後の矢印
  navigation: {
    nextEl: ".imgs2_next",//このクラスがあればそこがナビになる
    prevEl: ".imgs2_pre",//このクラスがあればそこがナビになる

  },
});

</script>

<script>
//ギャラリーimgs3
const gallery_swiper_imgs3 = new Swiper(".gallery_swiper_imgs3", {
//こっちがモバイル 兼 PC
slidesPerView: 1,/* コンテナ内に表示させるスライド数 */
  //slidesPerView: 1.45, // コンテナ内に表示させるスライド数(CSSでサイズ指定する場合は 'auto')
  //centeredSlides: true, // アクティブなスライドを中央に配置する
  //spaceBetween: 32, // スライド間の余白(px)
  // loop: true,
  speed:1000,//矢印クリック 自動再生で 動く速度 多いほうが遅く
  //initialSlide: -1,// 0スタートで表示順調整

  // autoplay: {
  //   delay: 3000, // スライドの自動再生速度調整 2000 = 2秒
  //   disableOnInteraction: false,
  //   resistanceRatio:0.1,
  // },

  breakpoints: { // こっちがPC
      737: { // 画面幅px以上で適用 ブレークポイント
     slidesPerView: '2', //autoにするとcssで指定したサイズで表示
      //slidesPerView: 3,
        //spaceBetween: 0, // スライド間の余白(px)

    }
  },

// ページネーション
// pagination: {
//     el: ".swiper-pagination",
//     clickable: true,
//   },
  // 前後の矢印
  navigation: {
    nextEl: ".imgs3_next",//このクラスがあればそこがナビになる
    prevEl: ".imgs3_pre",//このクラスがあればそこがナビになる

  },
});

</script>


<script>
//ギャラリーimgs4
const gallery_swiper_imgs4 = new Swiper(".gallery_swiper_imgs4", {
//こっちがモバイル 兼 PC
slidesPerView: 1,/* コンテナ内に表示させるスライド数 */
  //slidesPerView: 1.45, // コンテナ内に表示させるスライド数(CSSでサイズ指定する場合は 'auto')
  //centeredSlides: true, // アクティブなスライドを中央に配置する
  //spaceBetween: 32, // スライド間の余白(px)
  // loop: true,
  speed:1000,//矢印クリック 自動再生で 動く速度 多いほうが遅く
  //initialSlide: -1,// 0スタートで表示順調整

  // autoplay: {
  //   delay: 3000, // スライドの自動再生速度調整 2000 = 2秒
  //   disableOnInteraction: false,
  //   resistanceRatio:0.1,
  // },

  breakpoints: { // こっちがPC
      737: { // 画面幅px以上で適用 ブレークポイント
     slidesPerView: '3', //autoにするとcssで指定したサイズで表示
      //slidesPerView: 3,
        //spaceBetween: 0, // スライド間の余白(px)

    }
  },

// ページネーション
// pagination: {
//     el: ".swiper-pagination",
//     clickable: true,
//   },
  // 前後の矢印
  navigation: {
    nextEl: ".imgs4_next",//このクラスがあればそこがナビになる
    prevEl: ".imgs4_pre",//このクラスがあればそこがナビになる

  },
});

</script>

<?php ////////////////////////end/ 個ページ ギャラリー 同じページ内でswiperのナビが連動してしまうので、無理やり・・・・・  ?>