MW WP Formの対応状況ステータスを一括操作できるようにしたい

MW WP Formの問い合わせデータを取得している場合、対応状況を変更することができます。

この対応状況ステータスを一括操作で変更できるようにしたい時ありませんか?ありますよね。

そのカスタマイズです。

以下のコードをfunctions.phpに追記をします。

<?php

/*
 * 「一括操作」メニューにステータスを追加する
 */
function add_custom_bulk_edit_options() {
	global $wp_list_table;
	$current_screen = get_current_screen();
	if ( preg_match( '/edit-mwf_/', $current_screen->id ) ) {
		?>
		<script>
			jQuery(document).ready(function() {
				jQuery('<option>').val('not-supported').text('未対応').appendTo("select[name='action']");
				jQuery('<option>').val('reservation').text('保留').appendTo("select[name='action']");
				jQuery('<option>').val('supported').text('対応済み').appendTo("select[name='action']");
			});
		</script>
		<?php
	}
}
add_action( 'admin_head', 'add_custom_bulk_edit_options' );

/*
 * 「適用」ボタンを押下した時の処理
 */
function custom_admin_action_edit_mwwpform() {
	$post_ids = isset( $_REQUEST['post'] ) ? array_map( 'absint', $_REQUEST['post'] ) : array();

	foreach ( $post_ids as $post_id ) {
		$current_array                    = get_post_meta( $post_id, '_mw-wp-form_data', true );
		$current_array['response_status'] = $_REQUEST['action'];
		update_post_meta( $post_id, '_mw-wp-form_data', $current_array );
	}
}
add_action( 'admin_action_reservation', 'custom_admin_action_edit_mwwpform', 10, 2 );
add_action( 'admin_action_not-supported', 'custom_admin_action_edit_mwwpform', 10, 2 );
add_action( 'admin_action_supported', 'custom_admin_action_edit_mwwpform', 10, 2 );

石井秀幸@WEBデザイナー
横浜WordPress Meetup 主宰/株式会社ノクチ基地 取締役/モンゼンクリエイティブ合同会社 代表
WEB制作に関する技術や役立つ情報を発信していきます。10年にわたるWordPress歴を背景に、幅広いアイデアを形にするお手伝いをしています。