Welcartでカスタムフィールドテンプレートのカレンダー機能を使う
Welcartでサイトを作成中に、商品データとして日付を登録したくなりました。
そこでカスタムフィールドテンプレートを導入してdate設定をしてカレンダーから入力しようとしたのですが、どうもうまく動作しません。
なんかが競合しているのかな?と思いながらとりあえずカレンダー機能を使わず入力していたのですが、カスタムフィールドテンプレートのソースを眺めていて原因がわかりました。
カスタムフィールドテンプレートのcustom-field-template.phpの中のcustom_field_template_admin_scripts関数の中で
if( strstr($_SERVER['REQUEST_URI'], 'wp-admin/post-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/post.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/edit.php') || (is_object($post) && $post->post_type=='page') ) :
という場所がありました。
投稿画面かページ作成画面の場合はdatepicer.jsを読み込ませている条件文なのですが、Welcartは独自画面から商品登録を行なっているので読み込みが行われませんでした。(でもカスタムフィールドテンプレート自体は読み込まれる)
そこで条件文に少し追加して
if( strstr($_SERVER['REQUEST_URI'], 'wp-admin/admin.php?page=usces_itemedit') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/admin.php?page=usces_itemnew') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/post-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/post.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page-new.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/page.php') || strstr($_SERVER['REQUEST_URI'], 'wp-admin/edit.php') || (is_object($post) && $post->post_type=='page') ) :
と、Welcartの新規登録と編集時にもdatepicerを読み込むようにしたところ無事に動きました。