WordPressで構築されたサイトの問い合わせフォームのサンクスページをつくり変えたいと相談を受けた時のこと。

問い合わせフォームの簡単な仕様

  • 他人が開発したプラグインで実装
  • コンパネからフォームをつくり、ショートコードが発行
  • フォームの表示から送信完了まで1つのURLで完結
  • 非同期通信は使われていない
  • 確認ページやサンクスページはカスタマイズできない

つくりかえるのは現実的に×

時間や予算の都合上、プラグインを変えたりつくりなおすのはムリ。どうすればいいだろうかと。

ショートコードを再利用

考えた挙句の苦肉の策。ショートコードを中継する形にした。
同一URLで完結してるなら、ショートコードは常にHTMLを返答してくるはず。
別のショートコードをつくり、本来のショートコードの関数にパスすればいいのではと。そして返ってきたHTMLを判定して好き勝手できる。

pluginのソースを覗いて、ショートコードを探す

まぁ大体こんな感じで書かれてると思う

新たにショートコードをつくる

独自のショートコードをfunctions.phpあたりに書きます。

あとはすでに使わているショートコードを、上書き用のショートコードに変更する。

こんな感じで実装したわけですが

タイトルにもある通り、こんな感じでショートコードを上書きするような形で使うのはいいんだろうか?
スマートではないことは確か。何か他にいい手はあるのだろうか……。