ヒントだけですが。
- プラグイン形式にすると後々の運用などが楽
- ユーザ情報を保存するのは add_user_meta() や update_user_meta() を使えば簡単にできます。
- ユーザ作成時に特定の動作を発火させるためには user_register フックが利用できます。
- 日付けを計算するのはWordPressの仕事ではなく、純粋なPHPの範囲です。
- ダッシュボードに表示するためにはWordPressに Deshboard Widgets API が用意されています。
カスタムフィールドを利用するということはユーザ情報をカスタム投稿タイプか何かで保持することを考えていらっしゃるのでしょうか。
どのようなサイトなのか存じ上げないので個別の事例についてはコメントできませんが、一般的に会員向けサイトとしてログイン機能を持たせるのであれば、WordPressにユーザを追加することをお勧めします。
「カスタムフィールド」と「カスタム投稿」は名称を間違えているのかもしれませんが、よくわからないので、日付の例だけ。
$date = new DateTime('today +2 year -1 days');
$formatted_date = $date->format('Y/m/d');
DATE_SUB(DATE_ADD(CURDATE(), INTERVAL 2 YEAR), INTERVAL 1 DAY)
Daisuke Takahashiさん、kjmtshさん、共に回答ありがとうございます。
ちょっと説明不足でしたので、追記します。
現在、当方では “members” というカスタム投稿を設置しており、ユーザー一人ひとりの情報をカスタム投稿の記事として管理しています。
※極力プラグインは使いたくないので、functions.phpから設定しています。
次に、カスタムフィールドテンプレート(←これに関してはプラグインですが、、、)を利用して、ユーザー情報を登録するための入力フィールドを幾つか設置しています。
例: 氏名、住所、TEL、FAXなど、、、
そして、ここからが今回の質問内容なのですが、このユーザー情報の中に、契約終了日(←公開日時の日付から換算して「2年後の1日前の日付」)を自動で取得させたいと思っています。
※公開日時を変更することで、「2年後の1日前の日付」も連動する動きにしたいです。
さらに次ぎの希望として、自動で取得したその「2年後の1日前の日付」をカスタム投稿の編集画面に表示させたいと思っています。
kjmtshさんからご回答いただいた内容を試してみたところ、確かに「2年後の1日前の日付」を取得できました。しかしながら、あくまで”本日”から換算された日付であり、投稿画面の「公開日時」と連動しているものではありませんでした。
(「公開日時」を変更してもkjmtshさんにご教示いただいた方法で取得した日付は変更されませんでした。)
ということで、上記が今回希望している内容です。
以上、誠に恐縮なのですが、どなたかご教示願います。
Daisuke Takahashi さんがリンクを張ってくれた PHP のマニュアルを読むと、やり方がわかります。