반응형
Woocommerce의 이메일 템플릿을 미리 보는 방법
Woocommerce의 다른 이메일 템플릿을 미리 볼 수 있는 옵션을 찾을 수 없습니다.Woocommerce의 admin 섹션에는 고객의 "Order Received" 이메일을 미리 볼 수 있는 링크가 있습니다.단, 관리자에게 발송된 "Order Received" 메일을 편집하여 미리 보고 싶습니다.
WP Better 이메일 플러그인과 WP 이메일 템플릿 플러그인을 사용해봤지만 Woocommerce의 모든 메일에 미리보기 버튼을 제공하지 않았습니다.
주문 후 관리자 이메일을 받을 때까지 10분 정도 지연되므로 주문을 통해 이메일 템플릿을 미리 볼 수 없습니다.
admin-ajax.php 스크립트를 통해 실행되는 작은 함수를 만들었습니다.
https://example.org/wp-admin/admin-ajax.php?action=previewemail&file=emails/customer-processing-order.php&order=180
기능:
- 글로벌 설정
$order에서 지정된 ID를 가진 오더에 대한 변수order파라미터 - 로 지정된 전자 메일템플릿을 로드하다
file파라미터를 지정합니다.
이 코드는 다음과 같습니다(새로운 플러그인 또는 기존 php에 추가해야 합니다).
/**
* Open a preview e-mail.
*
* @return null
*/
function preview_email()
{
global $order;
$filename = $_GET['file'];
$orderId = $_GET['order'];
$order = new WC_Order($orderId);
include $filename;
return null;
}
add_action('wp_ajax_previewemail', 'preview_email');
빌트인우 기능을 사용하여 위 답변의 수정 버전입니다.장점은 테마와 기본 플러그인 템플릿 경로 모두에서 검색된다는 것입니다.
/**
* 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가 이메일을 관리하는 방법의 특성 때문입니다.기투브
언급URL : https://stackoverflow.com/questions/15006841/how-to-preview-email-templates-of-woocommerce
반응형
'programing' 카테고리의 다른 글
| 부트스트랩에서 스크롤 가능한 열을 만들려면 어떻게 해야 합니까? (0) | 2023.03.19 |
|---|---|
| Angular가 있는 여러 컨트롤러한 페이지 앱의 JS (0) | 2023.03.19 |
| Mongoose JS를 통한 MongoDB - 검색 기준아이디? (0) | 2023.03.19 |
| 컴파일된 Mongoose 모델은 덮어쓸 수 없습니다. (0) | 2023.03.19 |
| Ajax XMLHttpRequest를 사용하여 파일 업로드 (0) | 2023.03.14 |