私は、ウーコマースにいくつかの機能を追加するプラグインを作っています。私は当たり障りのないデフォルトのウーコマースの「マイアカウントダッシュボード」ページが嫌いで、ダッシュボードの見た目を変えたいと思います。私はオンラインで見てきました、そしてそれをする唯一の方法はwoocommerceプラグイン自体の中のテーマまたはテンプレートを修正することであると思われます。
私は自分のプラグインをできるだけ移植性のあるものにしたいので、私のプラグインは私のアカウントダッシュボードページを修正したいのですが、テンプレートやwoocommerceプラグインのPHPコードは修正しません。プラグインとしてこれを行う方法はありますか?
私はずさんなやり方で考えていることでそれをやってしまいました。 init
フックで、私はカスタムテンプレートに対してWooCommerceテンプレートをチェックし、WooCommerceテンプレートが私のテンプレートと一致しない場合は、WooCommerceテンプレートを自分のテンプレートで置き換えます。
add_action( 'init', 'run_inital' );
function run_inital(){
$wooThemePath = $woocommerce->plugin_path()."/templates/myaccount/dashboard.php";
$myThemeFile = file_get_contents(plugin_dir_path( __FILE__ )."/WooCommerce/dashboard.php");
$WooThemeFile = file_get_contents($wooThemePath);
if($myThemeFile != $WooThemeFile){
$Woo_Theme = fopen($wooThemePath, "w");
fwrite($Woo_Theme, $myThemeFile);
}
}
このスニペットをより良くしたい場合は、内容を比較するのではなく、ファイルサイズが異なるかどうかを確認する必要があります。