Как вывести поле ACF в письмах WooCommerce?

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

В этой статье мы поговорим о том, как можно вывести произвольные поля ACF в письмах WooCommerce. Для целевых уведомлений по электронной почте потребуется своеобразный обходной путь, это можно сделать, создав глобальную переменную через woocommerce_email_before_order_table

Вы можете использовать следующий пример, который необходимо вставить в function.php вашей темы:

// Setting global variable
function action_woocommerce_email_before_order_table( $order, $sent_to_admin, $plain_text, $email ) {
    $GLOBALS['email_data'] = array(
        'email_id'  => $email->id, // The email ID (to target specific email notification)
        'is_email'  => true // When it concerns a WooCommerce email notification
    );
}
add_action( 'woocommerce_email_before_order_table', 'action_woocommerce_email_before_order_table', 1, 4 );
 
function action_woocommerce_order_item_meta_end( $item_id, $item, $order, $plain_text ) {
    // Getting the custom 'email_data' global variable
    $ref_name_globals_var = $GLOBALS;
    
    // Isset & NOT empty
    if ( isset ( $ref_name_globals_var ) && ! empty( $ref_name_globals_var ) ) {
        // Isset
        $email_data = isset( $ref_name_globals_var['email_data'] ) ? $ref_name_globals_var['email_data'] : '';
        
        // NOT empty
        if ( ! empty( $email_data ) ) {
            // Target specific emails, several can be added in the array, separated by a comma
            $target_emails = array( 'customer_completed_order' );
            
            // Target specific WooCommerce email notifications
            if ( in_array( $email_data['email_id'], $target_emails ) ) {
                // Get product ID
                $product_id = $item->get_product_id();
                
                // Get field
                $erlebnisidgc = get_field( 'erlebnis_id', $product_id );
                
                // Has some value
                if ( $erlebnisidgc ) {
                    echo '<p>Here is your Link</p>';
                    echo '<a href="https://b-ceed.de/?eventid=' . $erlebnisidgc . '">Testlink</a>';
                }
            }           
        }
    }
}
add_action( 'woocommerce_order_item_meta_end', 'action_woocommerce_order_item_meta_end', 10, 4 );
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии