WordPress カスタマイズ覚書(Contact Form DB…)

目次

Contact From DBプラグインに、添付ファイルが保存されない

CF7DBPlugin.php

$filePath = $cf7->uploaded_files[$nameClean]

Contact Form 7の仕様変更により、上記コードは、右辺値が配列に変わったようです。

$filePath = $cf7->uploaded_files[$nameClean][0];

添付ファイルが一つだけであれば、右辺値を0番目にすることで、正常処理するようになります。

本件のバグ報告?

添付ファイルのURLがエクスポートで機能しない

プラグイン更新時に、特定のファイルを指定した場所にコピーする

WordPressのアクションフック (upgrader_process_complete)を使用し、プラグイン更新時であることを判断し、必要な処理を行う

function my_upgrader_process_complete( $upgrader_object, $options ) {
    if ($options['action'] == 'update' && $options['type'] == 'plugin' ){
        foreach($options['plugins'] as $each_plugin){
            if ($each_plugin == 'target_plugin_path_name' ){
				copy_dir('src_dir', 'dst_dir');
				break;
            }
        }
    }
}
add_action( 'upgrader_process_complete', 'my_upgrader_process_complete', 10, 2 );

WordPress開発時のデバッグ方法

もっと早く教えてほしかった!WordPress開発のデバッグが捗る11のヒント

Debug Bar, Simply Show Hooks 紹介されているこれらは、微妙で使いづらい

Query Monitorの方が良さそう

VSCode で WordPress をデバッグする

[PHP]ディレクトリごとファイルをコピーする

https://qiita.com/r-fuji/items/4736d9598a215b289dec

そもそも、copy_dir() が、WordPressにはある。コピー先に既にファイルが存在しても、必ずコピーし日付も更新される。https://developer.wordpress.org/reference/functions/copy_dir/

WordPressでディレクトリを取得する

XAMPPのMySQLがエラーで起動できない

    ・mysql
    ・performance_schema
    ・phpmyadmin
    ・test
            これをbackupと差し替えで、mysqlの起動は成功したが、bitnami wordpressはDB接続でエラー
    ・logでエラーといっているib_buffer_poolを、backupと差し替え
            状況変わらず
    ・wp_config.phpのmysqlのユーザ名をroot、パスを空白に差し替え
            wordpressが起動した。なぜ?

その他

  • CFDBの管理画面テーブルは、CFDBViewWhatsInDBで作成している。
  • CFDBのHTML出力は、ExportToHtmlTable.phpで作成している。
    • 値のリンク作成は、rawValueToPresentationValueで作成している。
    • このHTML出力は、管理画面やショートコードなど、HTML表現される場所で共通に使用されている。
  • CFDBのHTML出力は、プラグインのオプション設定では表現を変えられない。
    • CSSであれば変更は可能
  • CFDBのMySQLデータベース名「wp_cf7dbplugin_submits」
    • Key/Value方式
DROP TABLE IF EXISTS `wp_cf7dbplugin_submits`;
CREATE TABLE `wp_cf7dbplugin_submits` (
  `submit_time` decimal(16,4) NOT NULL,
  `form_name` varchar(127) CHARACTER SET utf8 DEFAULT NULL,
  `field_name` varchar(127) CHARACTER SET utf8 DEFAULT NULL,
  `field_value` longtext CHARACTER SET utf8,
  `field_order` int(11) DEFAULT NULL,
  `file` longblob
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

参考

  • 英語版WordPressを日本語版に変更する方法
    http://xn--hostgator–tx4i9cssv854df9de53p.com/wordpress-japanese/
  • WordPressのメール送信にGmail(Gsuite)を使う方法【2020年最新】
    https://jajaaan.co.jp/app/business-tools/wordpress-gmail-gsuite/
    • Bitnami XAMPPをインストールすれば、Gmailによるメール送信設定が初期から可能なので楽
    • Contact Form 7プラグインでGmailのSMTPサーバを使ってメール送信
      https://www.javadrive.jp/wordpress/plugin-list/index12.html
    • WPメールSMTPでGmailメーラーを設定する方法
      https://wpmailsmtp.com/docs/how-to-set-up-the-gmail-mailer-in-wp-mail-smtp/
  • AWS Lightsailで構築したWordpressのMySQLにアクセスする
    https://tacosvilledge.hatenablog.com/entry/2020/07/11/034627
  • WordPress上でajax経由で関数をactionさせる時はadmin-ajax使うといいよ!
    https://fwww.hateblo.jp/entry/2017/11/24/160719
  • jQueryでデータテーブルの作成
    https://datatables.net/
  • 【2021年版】5GB 無料でAll In One WP Migrationの容量の制限を上げてインポートする方法
    https://purikuro.com/2021/02/03/allinonewpmigration_max/
  • XAMPPでMySQLがStart出来ない場合の対処方法
    https://blog.senseshare.jp/debugging01.html
  • Contact Form DB ( CFDB ) は消えてしまったのか?
    http://sakusaku.me/blog/contact-form-db-dissapear.html