PHP Error when using woocommerce and the order email is send PHP 8.2
-
Hi,
Just wanted to let you know that your plugin causes a PHP 8.2 Deprecation when doing a woocommerce order. Would be very nice to have that fixed!
The issue happens here:/** * Set the language for WooCommerce emails according to the user information: * user profile language for admin AND language metadata for customer * * @param $bool * @param $wc_email * @return false */ public function trp_woo_setup_locale( $bool, $wc_email ) { global $TRP_LANGUAGE; $is_customer_email = $wc_email->is_customer_email(); $recipients = explode( ',', $wc_email->get_recipient() );
the call to $wc_email->get_recipient() triggers a deprecation issue as the first time your trp_woo_setup_locale is run the recipient is still NULL and the $wc_email->get_recipient() function uses explode() internally and that is not allowed anymore on NULL.
The trp_woo_setup_locale function runs twice for whatever reason, the second time everything runs smooth.
To reproduce this simply setup TRP and woocommerce locally and make an order. ?? look at the logs.
I guess you are hooking into ‘woocommerce_allow_switching_email_locale’ to early….
If you need more info let me know!
All the best and greets to lovely Timisoara,
Paul
Here the full stacktrace of the error:[13-Mar-2024 16:59:09 UTC] PHP Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in xxxx\public\wp-content\plugins\woocommerce\includes\emails\class-wc-email.php on line 447 [13-Mar-2024 16:59:09 UTC] PHP Stack trace: [13-Mar-2024 16:59:09 UTC] PHP 1. {main}() xxxx\public\index.php:0 [13-Mar-2024 16:59:09 UTC] PHP 2. require() xxxx\public\index.php:17 [13-Mar-2024 16:59:09 UTC] PHP 3. require_once() xxxx\public\wp-blog-header.php:19 [13-Mar-2024 16:59:09 UTC] PHP 4. do_action($hook_name = 'template_redirect') xxxx\public\wp-includes\template-loader.php:13 [13-Mar-2024 16:59:09 UTC] PHP 5. WP_Hook->do_action($args = [0 => '']) xxxx\public\wp-includes\plugin.php:517 [13-Mar-2024 16:59:09 UTC] PHP 6. WP_Hook->apply_filters($value = '', $args = [0 => '']) xxxx\public\wp-includes\class-wp-hook.php:348 [13-Mar-2024 16:59:09 UTC] PHP 7. WC_AJAX::do_wc_ajax('') xxxx\public\wp-includes\class-wp-hook.php:324 [13-Mar-2024 16:59:09 UTC] PHP 8. do_action($hook_name = 'wc_ajax_checkout') xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-ajax.php:96 [13-Mar-2024 16:59:09 UTC] PHP 9. WP_Hook->do_action($args = [0 => '']) xxxx\public\wp-includes\plugin.php:517 [13-Mar-2024 16:59:09 UTC] PHP 10. WP_Hook->apply_filters($value = '', $args = [0 => '']) xxxx\public\wp-includes\class-wp-hook.php:348 [13-Mar-2024 16:59:09 UTC] PHP 11. WC_AJAX::checkout('') xxxx\public\wp-includes\class-wp-hook.php:324 [13-Mar-2024 16:59:09 UTC] PHP 12. WC_Checkout->process_checkout() xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-ajax.php:508 [13-Mar-2024 16:59:09 UTC] PHP 13. WC_Checkout->process_order_payment($order_id = 2628, $payment_method = 'cod') xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-checkout.php:1287 [13-Mar-2024 16:59:09 UTC] PHP 14. WC_Gateway_COD->process_payment($order_id = 2628) xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-checkout.php:1058 [13-Mar-2024 16:59:09 UTC] PHP 15. WC_Order->update_status($new_status = 'processing', $note = 'Die Zahlung soll bei Lieferung (per Nachnahme) erfolgen.', $manual = *uninitialized*) xxxx\public\wp-content\plugins\woocommerce\includes\gateways\cod\class-wc-gateway-cod.php:348 [13-Mar-2024 16:59:09 UTC] PHP 16. WC_Order->save() xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-order.php:365 [13-Mar-2024 16:59:09 UTC] PHP 17. WC_Order->status_transition() xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-order.php:253 [13-Mar-2024 16:59:09 UTC] PHP 18. do_action($hook_name = 'woocommerce_order_status_pending_to_processing', ...$arg = variadic(2628, class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = ['parent_id' => 0, 'status' => 'processing', 'currency' => 'EUR', 'version' => '8.6.1', 'prices_include_tax' => FALSE, 'date_created' => class WC_DateTime { ... }, 'date_modified' => class WC_DateTime { ... }, 'discount_total' => '0', 'discount_tax' => '0', 'shipping_total' => '7.5', 'shipping_tax' => '0', 'cart_tax' => '0', 'total' => '25.50', 'total_tax' => '0', 'customer_id' => 1, 'order_key' => 'wc_order_WhGojBEXljAvj', 'billing' => [...], 'shipping' => [...], 'payment_method' => 'cod', 'payment_method_title' => 'Per Nachnahme', 'transaction_id' => '', 'customer_ip_address' => '::1', 'customer_user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'created_via' => 'checkout', 'customer_note' => '', 'date_completed' => NULL, 'date_paid' => NULL, 'cart_hash' => 'ce699bfffafd176bcc05f78bc6d41178', 'order_stock_reduced' => FALSE, 'download_permissions_granted' => FALSE, 'new_order_email_sent' => TRUE, 'recorded_sales' => FALSE, 'recorded_coupon_usage_counts' => FALSE]; protected $changes = []; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = []; protected $default_data = ['parent_id' => 0, 'status' => '', 'currency' => '', 'version' => '', 'prices_include_tax' => FALSE, 'date_created' => NULL, 'date_modified' => NULL, 'discount_total' => 0, 'discount_tax' => 0, 'shipping_total' => 0, 'shipping_tax' => 0, 'cart_tax' => 0, 'total' => 0, 'total_tax' => 0, 'customer_id' => 0, 'order_key' => '', 'billing' => [...], 'shipping' => [...], 'payment_method' => '', 'payment_method_title' => '', 'transaction_id' => '', 'customer_ip_address' => '', 'customer_user_agent' => '', 'created_via' => '', 'customer_note' => '', 'date_completed' => NULL, 'date_paid' => NULL, 'cart_hash' => '', 'order_stock_reduced' => FALSE, 'download_permissions_granted' => FALSE, 'new_order_email_sent' => FALSE, 'recorded_sales' => FALSE, 'recorded_coupon_usage_counts' => FALSE]; protected $data_store = class WC_Data_Store { private $instance = class WC_Order_Data_Store_CPT { ... }; private $stores = [...]; private $current_class_name = 'WC_Order_Data_Store_CPT'; private $object_type = 'order' }; protected $cache_group = 'orders'; protected $meta_data = [0 => class WC_Meta_Data { ... }, 1 => class WC_Meta_Data { ... }]; protected $legacy_datastore_props = [0 => '_recorded_sales', 1 => '_recorded_coupon_usage_counts', 2 => '_download_permissions_granted', 3 => '_order_stock_reduced', 4 => '_new_order_email_sent']; protected $items = ['line_items' => [...], 'shipping_lines' => [...], 'fee_lines' => [...]]; protected $items_to_delete = []; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = []; protected $refunded_line_items = NULL; public $customer_id = NULL })) xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-order.php:420 [13-Mar-2024 16:59:09 UTC] PHP 19. WP_Hook->do_action($args = [0 => 2628, 1 => class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = [...]; protected $changes = [...]; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = [...]; protected $default_data = [...]; protected $data_store = class WC_Data_Store { ... }; protected $cache_group = 'orders'; protected $meta_data = [...]; protected $legacy_datastore_props = [...]; protected $items = [...]; protected $items_to_delete = [...]; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = [...]; protected $refunded_line_items = NULL; public $customer_id = NULL }]) xxxx\public\wp-includes\plugin.php:517 [13-Mar-2024 16:59:09 UTC] PHP 20. WP_Hook->apply_filters($value = '', $args = [0 => 2628, 1 => class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = [...]; protected $changes = [...]; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = [...]; protected $default_data = [...]; protected $data_store = class WC_Data_Store { ... }; protected $cache_group = 'orders'; protected $meta_data = [...]; protected $legacy_datastore_props = [...]; protected $items = [...]; protected $items_to_delete = [...]; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = [...]; protected $refunded_line_items = NULL; public $customer_id = NULL }]) xxxx\public\wp-includes\class-wp-hook.php:348 [13-Mar-2024 16:59:09 UTC] PHP 21. WC_Emails::send_transactional_email($args = 2628, class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = ['parent_id' => 0, 'status' => 'processing', 'currency' => 'EUR', 'version' => '8.6.1', 'prices_include_tax' => FALSE, 'date_created' => class WC_DateTime { ... }, 'date_modified' => class WC_DateTime { ... }, 'discount_total' => '0', 'discount_tax' => '0', 'shipping_total' => '7.5', 'shipping_tax' => '0', 'cart_tax' => '0', 'total' => '25.50', 'total_tax' => '0', 'customer_id' => 1, 'order_key' => 'wc_order_WhGojBEXljAvj', 'billing' => [...], 'shipping' => [...], 'payment_method' => 'cod', 'payment_method_title' => 'Per Nachnahme', 'transaction_id' => '', 'customer_ip_address' => '::1', 'customer_user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'created_via' => 'checkout', 'customer_note' => '', 'date_completed' => NULL, 'date_paid' => NULL, 'cart_hash' => 'ce699bfffafd176bcc05f78bc6d41178', 'order_stock_reduced' => FALSE, 'download_permissions_granted' => FALSE, 'new_order_email_sent' => TRUE, 'recorded_sales' => FALSE, 'recorded_coupon_usage_counts' => FALSE]; protected $changes = []; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = []; protected $default_data = ['parent_id' => 0, 'status' => '', 'currency' => '', 'version' => '', 'prices_include_tax' => FALSE, 'date_created' => NULL, 'date_modified' => NULL, 'discount_total' => 0, 'discount_tax' => 0, 'shipping_total' => 0, 'shipping_tax' => 0, 'cart_tax' => 0, 'total' => 0, 'total_tax' => 0, 'customer_id' => 0, 'order_key' => '', 'billing' => [...], 'shipping' => [...], 'payment_method' => '', 'payment_method_title' => '', 'transaction_id' => '', 'customer_ip_address' => '', 'customer_user_agent' => '', 'created_via' => '', 'customer_note' => '', 'date_completed' => NULL, 'date_paid' => NULL, 'cart_hash' => '', 'order_stock_reduced' => FALSE, 'download_permissions_granted' => FALSE, 'new_order_email_sent' => FALSE, 'recorded_sales' => FALSE, 'recorded_coupon_usage_counts' => FALSE]; protected $data_store = class WC_Data_Store { private $instance = class WC_Order_Data_Store_CPT { ... }; private $stores = [...]; private $current_class_name = 'WC_Order_Data_Store_CPT'; private $object_type = 'order' }; protected $cache_group = 'orders'; protected $meta_data = [0 => class WC_Meta_Data { ... }, 1 => class WC_Meta_Data { ... }]; protected $legacy_datastore_props = [0 => '_recorded_sales', 1 => '_recorded_coupon_usage_counts', 2 => '_download_permissions_granted', 3 => '_order_stock_reduced', 4 => '_new_order_email_sent']; protected $items = ['line_items' => [...], 'shipping_lines' => [...], 'fee_lines' => [...]]; protected $items_to_delete = []; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = []; protected $refunded_line_items = NULL; public $customer_id = NULL }) xxxx\public\wp-includes\class-wp-hook.php:324 [13-Mar-2024 16:59:09 UTC] PHP 22. do_action_ref_array($hook_name = 'woocommerce_order_status_pending_to_processing_notification', $args = [0 => 2628, 1 => class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = [...]; protected $changes = [...]; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = [...]; protected $default_data = [...]; protected $data_store = class WC_Data_Store { ... }; protected $cache_group = 'orders'; protected $meta_data = [...]; protected $legacy_datastore_props = [...]; protected $items = [...]; protected $items_to_delete = [...]; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = [...]; protected $refunded_line_items = NULL; public $customer_id = NULL }]) xxxx\public\wp-content\plugins\woocommerce\includes\class-wc-emails.php:172 [13-Mar-2024 16:59:09 UTC] PHP 23. WP_Hook->do_action($args = [0 => 2628, 1 => class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = [...]; protected $changes = [...]; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = [...]; protected $default_data = [...]; protected $data_store = class WC_Data_Store { ... }; protected $cache_group = 'orders'; protected $meta_data = [...]; protected $legacy_datastore_props = [...]; protected $items = [...]; protected $items_to_delete = [...]; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = [...]; protected $refunded_line_items = NULL; public $customer_id = NULL }]) xxxx\public\wp-includes\plugin.php:565 [13-Mar-2024 16:59:09 UTC] PHP 24. WP_Hook->apply_filters($value = '', $args = [0 => 2628, 1 => class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = [...]; protected $changes = [...]; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = [...]; protected $default_data = [...]; protected $data_store = class WC_Data_Store { ... }; protected $cache_group = 'orders'; protected $meta_data = [...]; protected $legacy_datastore_props = [...]; protected $items = [...]; protected $items_to_delete = [...]; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = [...]; protected $refunded_line_items = NULL; public $customer_id = NULL }]) xxxx\public\wp-includes\class-wp-hook.php:348 [13-Mar-2024 16:59:09 UTC] PHP 25. WC_Email_Customer_Processing_Order->trigger($order_id = 2628, $order = class Automattic\WooCommerce\Admin\Overrides\Order { protected $id = 2628; protected $data = ['parent_id' => 0, 'status' => 'processing', 'currency' => 'EUR', 'version' => '8.6.1', 'prices_include_tax' => FALSE, 'date_created' => class WC_DateTime { ... }, 'date_modified' => class WC_DateTime { ... }, 'discount_total' => '0', 'discount_tax' => '0', 'shipping_total' => '7.5', 'shipping_tax' => '0', 'cart_tax' => '0', 'total' => '25.50', 'total_tax' => '0', 'customer_id' => 1, 'order_key' => 'wc_order_WhGojBEXljAvj', 'billing' => [...], 'shipping' => [...], 'payment_method' => 'cod', 'payment_method_title' => 'Per Nachnahme', 'transaction_id' => '', 'customer_ip_address' => '::1', 'customer_user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'created_via' => 'checkout', 'customer_note' => '', 'date_completed' => NULL, 'date_paid' => NULL, 'cart_hash' => 'ce699bfffafd176bcc05f78bc6d41178', 'order_stock_reduced' => FALSE, 'download_permissions_granted' => FALSE, 'new_order_email_sent' => TRUE, 'recorded_sales' => FALSE, 'recorded_coupon_usage_counts' => FALSE]; protected $changes = []; protected $object_read = TRUE; protected $object_type = 'order'; protected $extra_data = []; protected $default_data = ['parent_id' => 0, 'status' => '', 'currency' => '', 'version' => '', 'prices_include_tax' => FALSE, 'date_created' => NULL, 'date_modified' => NULL, 'discount_total' => 0, 'discount_tax' => 0, 'shipping_total' => 0, 'shipping_tax' => 0, 'cart_tax' => 0, 'total' => 0, 'total_tax' => 0, 'customer_id' => 0, 'order_key' => '', 'billing' => [...], 'shipping' => [...], 'payment_method' => '', 'payment_method_title' => '', 'transaction_id' => '', 'customer_ip_address' => '', 'customer_user_agent' => '', 'created_via' => '', 'customer_note' => '', 'date_completed' => NULL, 'date_paid' => NULL, 'cart_hash' => '', 'order_stock_reduced' => FALSE, 'download_permissions_granted' => FALSE, 'new_order_email_sent' => FALSE, 'recorded_sales' => FALSE, 'recorded_coupon_usage_counts' => FALSE]; protected $data_store = class WC_Data_Store { private $instance = class WC_Order_Data_Store_CPT { ... }; private $stores = [...]; private $current_class_name = 'WC_Order_Data_Store_CPT'; private $object_type = 'order' }; protected $cache_group = 'orders'; protected $meta_data = [0 => class WC_Meta_Data { ... }, 1 => class WC_Meta_Data { ... }]; protected $legacy_datastore_props = [0 => '_recorded_sales', 1 => '_recorded_coupon_usage_counts', 2 => '_download_permissions_granted', 3 => '_order_stock_reduced', 4 => '_new_order_email_sent']; protected $items = ['line_items' => [...], 'shipping_lines' => [...], 'fee_lines' => [...]]; protected $items_to_delete = []; protected $data_store_name = 'order'; protected $status_transition = FALSE; public $refunds = []; protected $refunded_line_items = NULL; public $customer_id = NULL }) xxxx\public\wp-includes\class-wp-hook.php:324 [13-Mar-2024 16:59:09 UTC] PHP 26. WC_Email->setup_locale() xxxx\public\wp-content\plugins\woocommerce\includes\emails\class-wc-email-customer-processing-order.php:79 [13-Mar-2024 16:59:09 UTC] PHP 27. apply_filters($hook_name = 'woocommerce_allow_switching_email_locale', $value = TRUE, ...$args = variadic(class WC_Email_Customer_Processing_Order { public $plugin_id = 'woocommerce_'; public $id = 'customer_processing_order'; public $errors = []; public $settings = ['enabled' => 'yes', 'subject' => '', 'heading' => '', 'additional_content' => 'Vielen Dank, dass Sie {site_url} verwenden!', 'email_type' => 'html']; public $form_fields = ['enabled' => [...], 'subject' => [...], 'heading' => [...], 'additional_content' => [...], 'email_type' => [...]]; protected $data = []; public $title = 'Bestellung in Bearbeitung'; public $enabled = 'yes'; public $description = 'Dies ist eine Bestellmitteilung, die nach der Zahlung an den Kunden gesendet wird und Details zur Bestellung enth?lt.'; public $heading = ''; public $subject = ''; public $template_plain = 'emails/plain/customer-processing-order.php'; public $template_html = 'emails/customer-processing-order.php'; public $template_base = 'xxxxwoocommerce/templates/'; public $recipient = NULL; public $object = NULL; public $mime_boundary = NULL; public $mime_boundary_header = NULL; public $sending = NULL; protected $manual = FALSE; protected $customer_email = TRUE; public $plain_search = [0 => '/\r/', 1 => '/&(nbsp|#0*160);/i', 2 => '/&(quot|rdquo|ldquo|#0*8220|#0*8221|#0*147|#0*148);/i', 3 => '/&(apos|rsquo|lsquo|#0*8216|#0*8217);/i', 4 => '/>/i', 5 => '/</i', 6 => '/�*38;/i', 7 => '/&/i', 8 => '/&(copy|#0*169);/i', 9 => '/&(trade|#0*8482|#0*153);/i', 10 => '/&(reg|#0*174);/i', 11 => '/&(mdash|#0*151|#0*8212);/i', 12 => '/&(ndash|minus|#0*8211|#0*8722);/i', 13 => '/&(bull|#0*149|#0*8226);/i', 14 => '/&(pound|#0*163);/i', 15 => '/&(euro|#0*8364);/i', 16 => '/&(dollar|#0*36);/i', 17 => '/&[^&\\s;]+;/i', 18 => '/[ ]{2,}/']; public $plain_replace = [0 => '', 1 => ' ', 2 => '"', 3 => '\'', 4 => '>', 5 => '<', 6 => '&', 7 => '&', 8 => '(c)', 9 => '(tm)', 10 => '(R)', 11 => '--', 12 => '-', 13 => '*', 14 => '£', 15 => 'EUR', 16 => '$', 17 => '', 18 => ' ']; protected $placeholders = ['{site_title}' => '5ive Dev', '{site_address}' => '5ive-dev.local', '{site_url}' => '5ive-dev.local', '{order_date}' => '', '{order_number}' => '']; public $find = []; public $replace = []; public $email_type = 'html' })) xxxx\public\wp-content\plugins\woocommerce\includes\emails\class-wc-email.php:344 [13-Mar-2024 16:59:09 UTC] PHP 28. WP_Hook->apply_filters($value = TRUE, $args = [0 => TRUE, 1 => class WC_Email_Customer_Processing_Order { public $plugin_id = 'woocommerce_'; public $id = 'customer_processing_order'; public $errors = [...]; public $settings = [...]; public $form_fields = [...]; protected $data = [...]; public $title = 'Bestellung in Bearbeitung'; public $enabled = 'yes'; public $description = 'Dies ist eine Bestellmitteilung, die nach der Zahlung an den Kunden gesendet wird und Details zur Bestellung enth?lt.'; public $heading = ''; public $subject = ''; public $template_plain = 'emails/plain/customer-processing-order.php'; public $template_html = 'emails/customer-processing-order.php'; public $template_base = 'xxxxwoocommerce/templates/'; public $recipient = NULL; public $object = NULL; public $mime_boundary = NULL; public $mime_boundary_header = NULL; public $sending = NULL; protected $manual = FALSE; protected $customer_email = TRUE; public $plain_search = [...]; public $plain_replace = [...]; protected $placeholders = [...]; public $find = [...]; public $replace = [...]; public $email_type = 'html' }]) xxxx\public\wp-includes\plugin.php:205 [13-Mar-2024 16:59:09 UTC] PHP 29. TRP_Woocommerce_Emails->trp_woo_setup_locale($bool = TRUE, $wc_email = class WC_Email_Customer_Processing_Order { public $plugin_id = 'woocommerce_'; public $id = 'customer_processing_order'; public $errors = []; public $settings = ['enabled' => 'yes', 'subject' => '', 'heading' => '', 'additional_content' => 'Vielen Dank, dass Sie {site_url} verwenden!', 'email_type' => 'html']; public $form_fields = ['enabled' => [...], 'subject' => [...], 'heading' => [...], 'additional_content' => [...], 'email_type' => [...]]; protected $data = []; public $title = 'Bestellung in Bearbeitung'; public $enabled = 'yes'; public $description = 'Dies ist eine Bestellmitteilung, die nach der Zahlung an den Kunden gesendet wird und Details zur Bestellung enth?lt.'; public $heading = ''; public $subject = ''; public $template_plain = 'emails/plain/customer-processing-order.php'; public $template_html = 'emails/customer-processing-order.php'; public $template_base = 'xxxxwoocommerce/templates/'; public $recipient = NULL; public $object = NULL; public $mime_boundary = NULL; public $mime_boundary_header = NULL; public $sending = NULL; protected $manual = FALSE; protected $customer_email = TRUE; public $plain_search = [0 => '/\r/', 1 => '/&(nbsp|#0*160);/i', 2 => '/&(quot|rdquo|ldquo|#0*8220|#0*8221|#0*147|#0*148);/i', 3 => '/&(apos|rsquo|lsquo|#0*8216|#0*8217);/i', 4 => '/>/i', 5 => '/</i', 6 => '/�*38;/i', 7 => '/&/i', 8 => '/&(copy|#0*169);/i', 9 => '/&(trade|#0*8482|#0*153);/i', 10 => '/&(reg|#0*174);/i', 11 => '/&(mdash|#0*151|#0*8212);/i', 12 => '/&(ndash|minus|#0*8211|#0*8722);/i', 13 => '/&(bull|#0*149|#0*8226);/i', 14 => '/&(pound|#0*163);/i', 15 => '/&(euro|#0*8364);/i', 16 => '/&(dollar|#0*36);/i', 17 => '/&[^&\\s;]+;/i', 18 => '/[ ]{2,}/']; public $plain_replace = [0 => '', 1 => ' ', 2 => '"', 3 => '\'', 4 => '>', 5 => '<', 6 => '&', 7 => '&', 8 => '(c)', 9 => '(tm)', 10 => '(R)', 11 => '--', 12 => '-', 13 => '*', 14 => '£', 15 => 'EUR', 16 => '$', 17 => '', 18 => ' ']; protected $placeholders = ['{site_title}' => '5ive Dev', '{site_address}' => '5ive-dev.local', '{site_url}' => '5ive-dev.local', '{order_date}' => '', '{order_number}' => '']; public $find = []; public $replace = []; public $email_type = 'html' }) xxxx\public\wp-includes\class-wp-hook.php:324 [13-Mar-2024 16:59:09 UTC] PHP 30. WC_Email->get_recipient() xxxx\public\wp-content\plugins\translatepress-multilingual\includes\class-woocommerce-emails.php:145 [13-Mar-2024 16:59:09 UTC] PHP 31. explode($separator = ',', $string = NULL) xxxx\public\wp-content\plugins\woocommerce\includes\emails\class-wc-email.php:447
- You must be logged in to reply to this topic.