WordPress ログインユーザーを自動ログアウトさせる

Filed under: functions.php,wordpress — kdcs @ 2020年1月15日 水曜日

ログインしたまま放置を避けるために一定時間操作が無い場合にログアウトさせる記述

function.phpに記述

//一定時間無操作で自動ログアウトする --------------------------------------------
add_action( ‘admin_init’, ‘mytheme_admin_init’ );
function mytheme_admin_init() {
add_filter( ‘auth_cookie_expiration’, ‘mytheme_auth_cookie_expiration’, 10, 3 );
$user = wp_get_current_user();
wp_set_auth_cookie( $user->ID, true );
}
function mytheme_auth_cookie_expiration( $expiration, $user_id, $remember ) {
if ( $remember ) $expiration = 3600; // 1時間 60 * 60 * 1
return $expiration;
}

$expiration = に秒数を入れる

Theme My Login

Filed under: wordpressプラグイン — kdcs @ 2020年1月8日 水曜日

レンタルサーバーがphp7系に移行している中、会員制サイトを構築する場合に利用していた「Theme My Login 6.2」はphp7に対応しておらずアップデートしようとしたが
最新版(7系)が互換性のないバージョンアップをして有料化したたため、旧6系の最終バージョンを入手する方法。

※バージョン6.2ではphp7に対応していない
※バージョン6.4はphp7に対応している

6系最終版 Theme My Login 6.4.17はこちらからDLできる

welcart 商品一覧ページに「在庫有り」のみ表示させる

Filed under: functions.php,welcart — kdcs @ 2019年12月23日 月曜日

通常は在庫有り無し関係なく公開されている商品を一覧表示するが、これを在庫がある商品だけを表示できるようにする。

チェックボックスにチェックを入れると在庫有り商品のみ表示する

<!-- 在庫ありのみ表示-->
<form method="GET" action="<?php echo get_category_link($cat); ?>">
    <input type="checkbox" name="sort" value="zaiko" onChange="this.form.submit()"
           <?php if(isset($_GET['sort']) == 'zaiko'){ echo 'checked';} ?>>
    <label>在庫有りのみ表示</label>
</form>
<!-- 在庫ありのみ表示(終了)-->

以下をfunction.phpに記述

function my_sort_item( $query ) {
    if ( is_admin() || ! $query->is_main_query() ) {
        return;
    }
    if ( $query->is_category() ) {
        $sort = isset($_GET['sort']) && is_string($_GET['sort']) ? $_GET['sort'] : '';
        $cat = isset($_GET['cat']) ? $_GET['cat'] : '';
 
        if ( $sort !== 'zaiko' ) {
            return;
        }
 
        $args = array(
            array(
                'key' => '_isku_',
                'value' => '"stocknum";s:1:"0"',
                'compare' => 'NOT LIKE',
            ),
            array(
                'key' => '_isku_',
                'value' => '"stock";s:1:"2"',
                'compare' => 'NOT LIKE',
            ),
        );
 
        $query->set('meta_query' , $args);
    }
}
add_action( 'pre_get_posts', 'my_sort_item', 10, 3);

参照するデータはWordPressデータベース、postmetaのmeta_keyが_isku_の中
stocknum=在庫数 s:1:”0″=在庫0(数値)
stock=在庫ステータス s:1:”2″=在庫ステータスが「売切れ」
0 在庫有り
1 在庫僅少
2 売切れ
3 入荷待ち
4 廃盤
※s:1の1は一桁という意味っぽい
例えば在庫数100ならs:3:”100″ 在庫数10000ならs:5:”10000″になる

welcart PHPswitch文で在庫ステータスを表示させる

Filed under: welcart — kdcs @ 2019年12月19日 木曜日

welcartでカテゴリー別商品表示(archive-item.phpなど)を行う時に「売り切れ」や「入荷待ち」などの在庫ステータス表示をさせる方法

switch ~ case を使う

<?php
    $status = usces_get_itemZaiko( 'id' );
    switch( $status ){
        case 1:
            echo '<span class="few">残りわずか</span>';
            break;
        case 2:
            echo '<span class="soldout">売り切れ</span>';
            break;
        case 3:
            echo '<span class="waiting">入荷待ち</span>';
            break;
    }
?>

2行目のコードで、在庫ステータスを数値(id)として取得する

0 在庫有り
1 在庫僅少
2 売切れ
3 入荷待ち
4 廃盤

welcart 関連商品表示に関する調査と結果

Filed under: welcart — kdcs @ 2019年12月17日 火曜日

welcartのテーマを自作する場合、プラグイン内のwc_templatesフォルダを自作テーマ内にコピーしてカスタマイズする。
usc-e-shop > theme > welcart_default > wc_templates

関連商品の表示に関しては、商品マスターにて個々の商品のタグに関連させたい商品コードをタグとして登録する必要がある。(数が多いと大変なのであまり実用的ではない)

試しにタグ付けして表示させてみるとエラーが出る
Warning: call_user_func_array() expects…

このエラーの解決方法は、welcart_defaultフォルダ内のfunctions.phpから118~148行目あたり「excerpt」とある中の、いくつかのタグを自作テーマのfunctions.phpへコピーすると解決する。

(続きを読む…)

サイト内検索

カテゴリー

最近の投稿

↑上に戻る