우커머스 신규 주문 메일에 상품명 표시하는 방법

댓글 남기기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

워드프레스에서 우커머스 쇼핑몰을 운영할 때, 고객이 주문하면 고객과 관리자에게 주문 알림 메일이 발생됩니다. 관리자에게 전송되는 이메일 제목은 기본적으로 '[사이트 이름]: 새 주문 #주문ID'와 같은 형식입니다. 이메일 제목에 상품명을 표시하고 싶은 경우 아래에서 설명하는 방법으로 가능합니다.

워드프레스 우커머스 신규 주문 메일에 상품명 표시하는 방법

워드프레스 우커머스 신규 주문 메일에 상품명 표시하기

우커머스에서 이메일 설정은 알림판 > 우커머스 > 설정 > 이메일 탭에서 가능합니다. 보내는 사람 주소는 해당 사이트의 도메인으로 된 이메일로 설정해야 이메일이 정상적으로 수신될 것입니다. 예를 들어, 사이트의 도메인 이름이 example.co.kr인 경우 webmaster@example.co.kr과 같은 이메일 주소를 '보내는 사람 주소'로 설정할 수 있습니다. 이 주소는 실제로 없는 주소여도 관계 없습니다.

고객이 주문할 때 관리자에게 발송되는 이메일의 제목에 상품명을 표시하고 싶은 경우가 있습니다. 그런 경우 Add the Name of Products Ordered to Admin New Order Email WooCommerce (관리자에게 전송되는 우커머스 관리자 신규 주문 이메일에 상품명 추가하기) 문서에서 제시하는 코드 스니펫(code snippet)를 응용할 수 있습니다.

// 워드프레스 우커머스: 새 주문 이메일에 제품 이름 표시하기
add_filter('woocommerce_email_subject_new_order', 'change_admin_email_subject', 10, 2);
function change_admin_email_subject( $subject, $order ) {
    $products_names = array();

    foreach ( $order->get_items() as $item ) {
        $products_names[] = $item->get_name();
    }

    return sprintf( '[%s] New Customer Order (#%s) of %s from %s %s', 
        wp_specialchars_decode(get_option('blogname'), ENT_QUOTES), 
        $order->get_id(), 
        implode(', ', $products_names),
        $order->get_billing_first_name(),  
        $order->get_billing_last_name()
    );
}

위의 코드를 차일드 테마 내의 함수 파일(functions.php)에 추가하도록 합니다. 자식 테마를 만들지 않고 작업할 경우 추후 사용 중인 워드프레스 테마를 업데이트하면 추가한 사항이나 수정한 사항이 모두 초기화되어 사라질 수 있습니다.

상기 코드 조각을 그대로 사용하면 '[사이트 이름] New Customer Order (#주문ID) of 상품명 from 주문자 이름' 형식으로 이메일 제목이 설정됩니다.

코드를 조금 응용하여 위에서 return... 이하 부분을 다음과 같이 바꿀 수 있습니다.

// 주문 이메일에 상품명 표시하기 (수정)
add_filter('woocommerce_email_subject_new_order', 'change_admin_email_subject', 10, 2);
function change_admin_email_subject( $subject, $order ) {
    $products_names = array();

    foreach ( $order->get_items() as $item ) {
        $products_names[] = $item->get_name();
    }

    return sprintf( '신규 주문 (#%s) - %s', 
        $order->get_id(), 
        implode(', ', $products_names)
    );
}

'신규 주문' 부분을 적절히 변경하도록 합니다. 위의 코드를 적용해보면 다음과 같이 '신규 주문 (#주문ID) - 상품명' 형식으로 이메일 제목이 표시됩니다.

워드프레스 주문 시 주문 알림 메일에 상품명 추가하기

상기 코드를 적절히 응용하여 원하는 포맷으로 주문 메일 타이틀이 표시되도록 변경해보시기 바랍니다.

마치며

이상으로 워드프레스 우커머스 쇼핑몰에서 클라이언트가 주문할 때 발송되는 주문 알림 메일의 제목에 상품명을 표시하는 방법에 대해 살펴보았습니다.

워드프레스 5.5.1, 우커머스 버전 4.5.2와 최신 버전의 아바다 테마에서 테스트해보니 위의 코드가 잘 작동하는 것을 확인했습니다. 혹시 추후에 위의 코드가 제대로 작동하지 않을 경우 아래 댓글로 알려주시면 확인하여 코드를 업데이트할 수 있으면 업데이트하도록 하겠습니다.

참고



댓글 남기기

Leave a Comment