。メリットは、テーマとデフォルトのプラグインテンプレートパスの両方を表示することです。
/**
* Open a preview e-mail.
*
* @return null
*/
function previewEmail() {
if (is_admin()) {
$default_path = WC()->plugin_path() . '/templates/';
$files = scandir($default_path . 'emails');
$exclude = array('.', '..', 'email-header.php', 'email-footer.php','plain');
$list = array_diff($files,$exclude);
?><form method="get" action="<?php echo site_url(); ?>/wp-admin/admin-ajax.php">
<input type="hidden" name="order" value="2055">
<input type="hidden" name="action" value="previewemail">
<select name="file">
<?php
foreach($list as $item){ ?>
<option value="<?php echo $item; ?>"><?php echo str_replace('.php', '', $item); ?></option>
<?php } ?>
</select><input type="submit" value="Go"></form><?php
global $order;
$order = new WC_Order($_GET['order']);
wc_get_template('emails/email-header.php', array('order' => $order));
wc_get_template('emails/'.$_GET['file'], array('order' => $order));
wc_get_template('emails/email-footer.php', array('order' => $order));
}
return null;
}
add_action('wp_ajax_previewemail', 'previewEmail');
ニースソリューション... 私はあなたの方法を変更してあるビット:また、あなたが管理者としてログインしている場合、チェックする電子メールのヘッダーとフッター(Woocommerce更新理由でなければなりません)を追加します。 'function previewEmail(){ \t if(is_admin()){ \t \tグローバル$オーダー; \t \t $ sBaseDir = get_template_directory()。 '/ woocommerce/emails /'; \t \t $ order = new WC_Order($ _ GET ['order']); \t \tには、$ sBaseDir.'email-header.php 'が含まれています。 \t \tには、$ sBaseDirが含まれています。$ _ GET ['file']; \t \tには、$ sBaseDir.'email-footer.php 'が含まれています。 \t} \t return null; } ' – Sjeiti
@David Riccitelli - 「既存のPHPはどういう意味ですか?」私はこれのためだけに新しいプラグインを作成する必要はありませんし、既存のPHPに追加することができるということがわかりません。 – thecommonthread
@commonthread WordPressでロードされているPHPファイル(上記のテーマファイルも有効)に上記を追加することができます –