2021年11月27日土曜日

reCAPTCHA (v3) を指定したページで、しかもデフォルトのパーマリンクで表示する

 WordPressで、reCAPTCHA (v3)を設定したとき、指定したページのみ表示する で検索すると

functions.php に

// お問い合わせページを除き、「reCAPTCHA」を読み込ませない function load_recaptcha_js() {     if ( ! is_page( 'contact' ) ) {  wp_deregister_script( 'google-recaptcha' );  } } add_action( 'wp_enqueue_scripts', 'load_recaptcha_js',100 );

記載するとできるとあります。

が、これはパーマリンクが文字で設定されている場合に限ります。

事情によってパーマリンクをデフォルトの ?p=数字 

https://www.test.org/?p=123

に設定している場合はどうすれば?というときは、該当のページのIDを書きます。

この指定の仕方は WordPress codexに記載があります。

// お問い合わせページを除き、「reCAPTCHA」を読み込ませない function load_recaptcha_js() { if ( ! is_page( '123' ) ) { wp_deregister_script( 'google-recaptcha' ); } } add_action( 'wp_enqueue_scripts', 'load_recaptcha_js',100 );

2021年11月13日土曜日

投稿タイトルをカスタムフィールドから自動設定する - WordPress

参照リンクが消えたので転載

//投稿タイトルをカスタムフィールドから自動設定する

function auto_review_title( $post_id, $post ) {

// カスタムフィールドの値を取ってくる

// $fld_institute_id = get_post_meta($post_id, 'tec_institute', true);


$fld_organizer_id = tribe_get_organizer($post_id);

$fld_ws_id = get_post_meta($post_id, 'tec_ws', true);

// $fld_director_id = get_post_meta($post_id, 'tec_director', true);

// $fld_seats_id = get_post_meta($post_id, 'tec_number_seats', true);

// $ID = get_the_ID();

// 「新規追加」を押した時点でここを通ってしまい、

// その時はカスタムフィールドの値が取ってこれないので、

// それを弾く為にempty()で中身があるか確認している

// if( !empty( $fld_institute_id ) and !empty( $fld_ws_id ) ){

// if( !empty( $fld_model_id ) and !empty( $fld_reviewr_id ) and !empty( $fld_seats_id ) ){

// if( !empty( $fld_organizer_id ) and !empty( $fld_ws_id ) and !empty( $fld_organizer_id ) ){

if( !empty( $fld_organizer_id ) and !empty( $fld_ws_id )){

if( $post->post_type == 'tribe_events' ){

// $fld_model_idには機種名ではなく、タームIDが入っている

// ターム名がほしいので、まずget_term_byでタームを取ってくる

//$term1 = get_term_by( 'term_id', $fld_model_id, 'tec_director' );

//$term2 = get_term_by( 'term_id', $fld_reviewr_id, 'tec_ws' );


// そのあとにnameでアクセスする

// $title = $fld_model_id . ' - ' . $fld_reviewr_id;

// $title = $fld_model_id . ' - ' . $fld_organizer_id;

// $title = $fld_organizer_id . ' - ' . $fld_ws_id . ' - ' . $fld_director_id;

$title = $fld_organizer_id . ' - ' . $fld_ws_id;

// $title = $fld_organizer_id . ' - ' . $fld_institute_id . ' - ' . $fld_ws_id . ' - ' . $fld_director_id;

// $title = $fld_model_id . ' - ' . $fld_reviewr_id . ' - ' . $fld_organizer_id. ' ' . $fld_etc_id;

// $title = $fld_model_id . ' - ' . $fld_reviewr_id . ' - ' . tribe_get_organizer();

// $title = $fld_model_id . ' - ' . $fld_reviewr_id . ' - ' . $fld_seats_id;

//$title = $term1->name . '_' . $term2->name;

// 「wp_update_post」実行時にもこの関数に通ってしまうため、一時的にフックを取る

remove_action( 'wp_insert_post', 'auto_review_title' );

// タイトルを更新

wp_update_post( array(

'ID' => $post_id,

'post_title' => $title

) );

// 「wp_update_post」の処理が終わったので、この関数を再度フックする

add_action('wp_insert_post', 'auto_review_title', 10, 2 );

}

}

}

add_action('wp_insert_post', 'auto_review_title', 10, 2); // 記事追加時のアクションにフック

//投稿タイトルをカスタムフィールドから自動設定する

1.

投稿してから更新すると

投稿タイトルが

テスト の時

更新すると

テストテスト

に2重投稿される問題があります。削除すれば消えます。

2.

パーマリンク設定が投稿名で、投稿タイトルををカスタムフィールド欄で反映させる場合、漢字入力しているとパーマリンクが漢字になります。アドレスをコピペして共有するときにエンコードされて長くなってしまいます。

2021年11月9日火曜日

Bulk Mail Send - Woocommerceで顧客あてに一括メールを送る tips集

Woocommerceで顧客あて、または顧客が注文した商品ごとにまとめてメールを送るプラグイン

Bulk Mail Send

 https://wordpress.org/plugins/bulk-mail-send/

Woocommerceで オンラインレッスンのZOOMリンクを販売して後日、顧客にメールを一斉送信できたらよいと思っていた時に見つけました。

「注文を選択」を、注文のステータスで絞り込む方法

    Bulk Mail Send 「注文を選択」では、注文のステータスに関わらず、すべての顧客がリスト表示されます。

    ここですべての顧客にチェックを付けて、メールを送信したいという方は少ないと思います。なぜなら「注文完了」「キャンセル」した顧客が混ざっているからです。

    そこで ステータス completed と検索欄に入力して検索します。すると、 completed(完了) の顧客だけが表示されます。同様に cancel をいれるとキャンセルした顧客だけが表示されます。

    購入した人だけ、cancelした人だけにメールを送信できます。

送信者名と送信元メールアドレスを変更する方法

    「Bulk Mail Send」を使用して、WordPress内蔵のメーラでメールを送信すると、送信元がWordPress WordPress@ドメイン名になります。ちょっとこれは店舗として怪しまれると感じました。

    そこで送信されるメールの送信者名と送信元メールアドレスを変更する方法です。

    1. この記事のコードをテーマのfunctions.phpに入れるか自作プラグイン化する
    https://sys-guard.com/post-16369/

    2. WpMail SMTP プラグインなどのSMTPプラグインをgmail/smtpサーバで設定する。

    WordPress内蔵のメーラでメールを送信すると未達や遅配、迷惑メールになることがあるので、2. のSMTPプラグインを使用するのが良いです。プラグインを入れるだけで送信元名、メールアドレスが変更できますが、smtpサーバが設定されない場合もあります。

トラブル

本文に改行が入っているとOutlookとメールで改行が削除される

   本文・署名に改行が入っていると、Outlookクライアント、https://outlook.live.com/ と Windows10 付属のメールで改行が削除されます。

    Thunderbird,gmailでは問題ありません。

    Outlookクライアントのテキスト形式メッセージ内の余分な改行を削除する は効果がありませんでした。

メール本文はHTMLになっているのでクライアント側が問題なのかと思います。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><span style="white-space:pre-wrap">改行が入っていると
Outlookと
メールで
削除される</span>
メールを一斉送信するときにはどうしても改行が入るので、受け取る側がOutlook系のメーラだと、なんだろうな?と思われる印象です。

もしや、と思い立って。

Outlookクライアント、https://outlook.live.com/ と Windows10 付属のメールで使われているHTMLレンダラーが IE11なのでは?と下記のソースを書いたHTMLファイルをつくって読ませてみたところ、きちんと改行されていました。

SWELL|コーポレートサイトでよくある追従バナーを「複数」設置するカスタマイズ

下記のカスタマイズを参考に、複数のバナーを追加します。同投稿では、段落ブロックを一つ配置して、それをCSSで装飾するものでした。 SWELL|コーポレートサイトでよくある追従バナーを設置するカスタマイズ | VOOL 本 […] 投稿元: Microsoft Power Auto...