Secura Vita

Category: Works , WordPress , Plugins
Works

MW WP Form:データベースのCSVダウンロードを年月絞り込みに対応させる

Tag:

MW WP Form:データベースのCSVダウンロードを年月絞り込みに対応させる

MW WP Formで「問い合わせデータをデータベース」を有効にしていると問い合わせデータを保存・確認できるので便利ですね。

で、このデータをCSVでエクスポートできるので活用している方も多いかと思います。

ただ、このCSVエクスポートが年月の絞り込みに対応していないのでちょっと使いづらいなぁと思ってました。

調べてみるとちょっとしたことで年月絞り込みに対応できたのでご紹介。

デフォルトのCSVダウンロード

デフォルトは全件ダウンロード、もしくはそのページに表示されているデータ全部となってます。

感覚的には年月で絞り込めばその絞り込んだページに出ているものがダウンロードされそうなものですがそうではなく、対象は全件(すべての日付)になってます。

一応ページ送りには対応しているみたいなので2ページ目に表示されてるものとかはいけるみたいですね。

アクションフックで対応

調べてみると問い合わせデータのリストを取得する前に通るフックがあり、そこに追加してやると絞り込みに対応できました。

add_filter( 'mwform_get_inquiry_data_args-mwf_XXX', 'custom_get_inquiry_data_args' );
function custom_get_inquiry_data_args( $args = array() ) {
	if( isset( $_GET['m'] ) && $_GET['m'] ) {
		$date = str_split( $_GET['m'], 4 );
		$args['year'] = $date[0];
		$args['monthnum'] = $date[1];
	}
	return $args;
}

フック名のXXXは対象フォームのIDになります。123の場合はmwform_get_inquiry_data_args-mwf_123です。

一覧ページで年月絞り込みを行うと「m」というパラメータに年月が6桁の数字で入ります。

2023年6月で絞り込むと「m=202306」となるので、それを4桁2桁で分割し、それぞれyearmonthnumに設定します。

要はWp Queryに送るデータになるので、やろうと思えば年月だけでなくカスタムフィールドの絞り込みも作れそうですね。

動作

これで年月で絞り込めばそのページに表示されているデータ、 Download Allにチェックが入っていればその絞り込んだ月の全データがCSVでエクスポートされます。

月ごとでデータを保管しておきたい場合なんかに使えますね。


おもしろかった・役に立った
▼ブログランキング参加中!クリック!▼
  • ブログランキング・にほんブログ村へ

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ソースコードを記入する場合は [code]~[/code] でくくってください。
[code]
echo "Hello World";
[/code]

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください