WordPress プラグイン「MW WP Form」電話番号を半角入力しても半角エラー

Filed under: MW WP Form,wordpressプラグイン — kdcs @ 2023年4月5日 水曜日

WordPress プラグイン「MW WP Form」電話番号の入力を設定し、バリデーションに「電話番号と半角数字」を設定。
まず、全角数字で入力すると「電話番号の形式ではありません」と「半角数字で入力してください」のエラーが出る。
次に半角数字で入力すると「半角数字で入力してください」のエラーが出る。

ネット上に解決方法があったがプラグインのファイルを修正することになるのでバージョンアップ時に上書きされる。

以下、解決策
ファイル:wp-content\plugins\mw-wp-form\classes\validation-rules\class.numeric.php

        if ( preg_match( '/^[0-9]+$/', $value ) ) {
            return;
        }

この部分を

    if($name == "tel") {
      $val = $value;
      if (preg_match('/^[0-9]+-[0-9]+-[0-9]+/', $val)) {
        return;
      }
    } else {
      if (preg_match('/^[0-9]+$/', $value)) {
        return;
      }
    }

こう変える。
$nameとバリデーションルールを「tel」にする必要がある

WordPress プラグイン「MW WP Form」で生年月日3項目の一括バリデーション

Filed under: functions.php,MW WP Form,wordpressプラグイン — kdcs @ 2023年4月5日 水曜日

MW WP Formは国産プラグインでContact Form 7より柔軟性がある。(確認ページやサンクスページ、メールデータの保存など)

生年月日など入力項目を分割してバリデーションをかけると年、月、日にそれぞれエラーメッセージが出てしまうので、年月日に一括してバリデーションをかける方法。

[mwform_select name="birth-year" children=":---,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997" post_raw="true" show_error="false"]年 [mwform_select name="birth-month" children=":---,1,2,3,4,5,6,7,8,9,10,11,12" post_raw="true" show_error="false"]月 [mwform_select name="birth-date" children=":---,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31" post_raw="true" show_error="false"]日
[mwform_error keys="birth-year,birth-month,birth-date"]

それぞれのセレクトボックスのショートコードに「show_error=”false”」を入れる

functions.php

function entry_validation_rule( $Validation, $data) {
  $validation_message2 = '未入力項目があります。';

  if ( empty( $data['birth-year'] ) ) {
    $Validation->set_rule( 'birth-year', 'noempty', array( 'message' => $validation_message2 ) );
  } elseif ( empty( $data['birth-month'] ) ) {
    $Validation->set_rule( 'birth-month', 'noempty', array( 'message' => $validation_message2 ) );
  } elseif ( empty( $data['birth-date'] ) ) {
    $Validation->set_rule( 'birth-date', 'noempty', array( 'message' => $validation_message2 ) );
  }

  return $Validation;
}
add_filter( 'mwform_validation_mw-wp-form-5', 'entry_validation_rule', 10, 2 );

最後の行、mwform_validation_mw-wp-form-5の
5は、ショートコードの[mwform_formkey key=”5″]このkeyの数字

(続きを読む…)

WordPress 管理画面の翻訳された文字列の変更

Filed under: functions.php,wordpress — kdcs @ 2023年2月22日 水曜日

サイトの内容によっては管理画面内の文字列が合っていない場合があるため、翻訳された文字列を変更したい場合がある。

例:ユーザープロフィール画面の「ブログ上の表示名」を「フルネーム」に変更する

※通常、翻訳ファイルはja.poとja.moだが管理画面についてはadmin-ja.poとadmin-ja.moになるので今回の場合はadmin-ja.poからmsgidを調べる。
「ブログ上の表示名」のmsgidは「Display name publicly as」

functions.phpに記述(翻訳テキストを変える)

add_filter( 'gettext', function( $translation, $text, $domain ) {
	global $pagenow;
	if ( 'profile.php' === $pagenow || 'user-edit.php' === $pagenow ) {
		if ( 'default' === $domain ) {
			$texts = array (
				'Display name publicly as' => 'フルネーム(確認)',
			);
			if ( isset( $texts[$text] ) ) {
				$translation = $texts[$text];
			}
		}
	}
	return $translation;
}, 10, 3 );

(続きを読む…)

Contact Form 7 グーグルアナリティクス GA4での送信イベント設定

Filed under: contactform7,functions.php,googleAnalytics — kdcs @ 2022年10月2日 日曜日

contact form 7はサンクスページが無く、同じURLで送信完了となるためグーグルアナリティクスのコンバージョン設定が簡単にできなかった。
contact form7は最近のバージョンアップで、サンクスページが無くてもコンバージョンが計測できるようにイベントタグを公開した。これはGA4に対応したもので、従来のユニバーサルアナリティクスには非対応と思われる。

function.phpに記述

add_filter( 'wp_footer', function() {
  if ( is_page('contact')) {
  ?>
  <script>
  document.addEventListener( 'wpcf7mailsent', function( event ) {
    gtag('event', 'Submit', {
      'event_category' : 'Form',
      'event_label' : 'contact'
    });
  }, false );
  </script>
  <?php
  }
} );

is_pageで指定したページのwp_footerでgtagが出力されるようになっている。
イベント名:Submit
イベントカテゴリー:Form
イベントラベル:contact

名前は自由っぽい

後はGA4側でイベントの設定を行う
GA4→設定→イベント→イベントを作成→作成(カスタムイベント)
上記のgtag設定より、カスタムイベント名(任意)を入力し、event_nameに「Submit」を入力
多分これだけでよい。反映に時間がかかる(一晩くらい)

設定が反映されるとイベントリストに表示されるので「コンバージョンとしてマークを付ける」をオンにする

GA4→設定→コンバージョン
設定が反映されるとコンバージョンイベントリストに表示されるので「コンバージョンとしてマークを付ける」をオンにする

WordPressの「W」マークファビコンを無効化、独自ファビコンに変える

Filed under: functions.php,wordpress — kdcs @ 2022年8月19日 金曜日

ウェブサイトにファビコンを設定しても静的ファイルを開くと「W」がファビコンとして表示されてしまう。

WordPress version 5.4 以降では、WordPress本体が勝手にこのリクエストを処理し、Wordpressn内の「W」アイコン(/wp-includes/images/w-logo-blue-white-bg.png)へリダイレクトする表示させる処理が追加されました。

このデフォルトで設定されているアイコンを無効化して独自アイコンに変える記述
function.php

// 「W」アイコンの表示をやめて独自アイコンを設定する---------------
add_action( 'do_faviconico', 'wwwc_no_wp_favicon' );
function wwwc_no_wp_favicon() {

    // 必要があれば、アイコン画像をセット
    wp_redirect( get_theme_file_uri( 'img/favicon.png' ) ) ;
    exit;

}

/wp-includes/functions.php でアクションが定義されています。関数 do_favicon() 自体は、/favicon.ico へのアクセスがあった場合に呼ばれるアクションです。(デフォルトのrewrite rules に定義されています。

サイト内検索

カテゴリー

最近の投稿

↑上に戻る