Contact Form 7 3.9 ベータ

Contact Form 7 3.9 がもうすぐリリースされます。3.9 ではその内部構造に対して大規模なリファクタリングが行われました。ほとんどのユーザーは気にしなくてよいことですが、もし Contact Form 7 のアドオンプラグインを開発していたり、テーマの functions.php ファイルから Contact Form 7 のカスタマイズを行っている場合には、Contact Form 7 3.9 に対応させるために修正が必要になるかもしれません。


Contact Form 7 3.9 のベータ版は WordPress.org のプラグインディレクトリからダウンロードできます。Contact Form 7 3.9 が正式にリリースされる前に、このベータ版を利用して自身のコードをテストされることを強くおすすめします。あなたが使っているアドオンプラグインがもし Contact Form 7 3.9 更新後に動かなくなったなら、そのアドオンプラグインの作者に連絡して、修正が必要なことを教えてあげてください。

3.9 での主要な変更点は:

  • WPCF7_Submission、WPCF7_Mail、WPCF7_MailTaggedText クラスが導入されました
  • 一部のプロパティとメソッドが WPCF7_ContactForm から新3クラスに移管されました
  • 一部のプロパティとメソッドのアクセス権が private に変更されました。これによりそれらのプロパティとメソッドはあなたのコードから直接アクセスすることができなくなります

実際には以下のようなコード修正が必要になるでしょう:


/* このようにはしないでください。id プロパティはもうアクセスできなくなっています。 */
$id = $contact_form->id; // 間違い。

/* 代わりに id() メソッドを使ってください。 */
$id = $contact_form->id();

/* form、mail、mail_2、messages、additional_settings の各プロパティも同様にアクセス不可能です。 */
$form = $contact_form->form; // 間違い。

/* なので prop() メソッドを使ってアクセスします。 */
$form = $contact_form->prop( 'form' );

/* それらのプロパティをセットするときは、次のように set_properties() メソッドを使います: */
$mail = $contact_form->prop( 'mail' );
$mail['subject'] = "Well, hello, Dolly";
$contact_form->set_properties( array( 'mail' => $mail ) );


/* WPCF7_ContactForm オブジェクトはもう posted_data プロパティを持っていません。 */
$posted_data = $contact_form->posted_data; // 間違い。

/* 代わりに WPCF7_Submission オブジェクトの get_posted_data() メソッドを使います。 */
$submission = WPCF7_Submission::get_instance();

if ( $submission ) {
	$posted_data = $submission->get_posted_data();
}