В настоящее время я пытаюсь встроить CSS с HTML-контентом, который работает идеально, но только один раз.Когда я пробую это несколько раз, я получаю эту ошибку:
Неустранимая ошибка PHP: Невозможно объявить класс Emogrifier, поскольку имя уже используется
Ошибкаброшенный в email-functions.php, который включается в мой файл Word.px для functions.php дочерней темы:
/**
* Include email functions for ultimate member
*/
require 'ultimate-member/functions/email-functions.php';
Это функция в файле email-functions.php, которая вызывает проблему:
/**
* Apply css to UM email message from template
*/
add_filter( 'um_email_send_message_content', 'apply_style_to_email', 10, 99);
function apply_style_to_email($message, $slug, $args ) {
//Get Emogrifier class
include_once get_home_path() . 'wp-content/themes/DiviChild/ultimate-member/libraries/class-emogrifier.php';
ob_start();
include_once get_home_path() . 'wp-content/themes/DiviChild/woocommerce/emails/email-styles.php';
$css = apply_filters( 'woocommerce_email_styles', ob_get_clean() );
// apply CSS styles inline for picky email clients.
try {
$emogrifier = new Emogrifier( $message, $css );
$message = $emogrifier->emogrify();
} catch ( Exception $e ) {
$logger = wc_get_logger();
$logger->error( $e->getMessage(), array( 'source' => 'emogrifier' ) );
}
return $message;
}
Как видите, я использую include_once для получения класса Emogrifier.Я действительно не знаю, что я делаю здесь не так.
Это класс Emogrifier: https://codeshare.io/50B0ml