/wp-content/plugins/f4-woocommerce-shipping-phone-and-e-mail
directory, or install the plugin through the WordPress plugins screen directlySince WooCommerce 5.6 the shipping phone is natively supported in the formatted shipping address. You have to make sure that your template files
(emails/email-addresses.php, emails/plain/email-addresses.php, order/order-details-customer.php) are up-to-date (@version 5.6.0). If your template is not at
least 5.6 compatible then you can simply add the following hook to your functions.php. This hook should restore the previous functionality until your templates are up-to-date:
add_filter('F4/WCSPE/append_phone_field_to_formatted_address', '__return_true')
Since WooCommerce 5.6 the order of our shipping email/phone fields is different than the billing email/phone fields. Thats because our simple solution to add
this fields to every theme without changing the code is limited and the WooCommerce 5.6 update changes a few things in the template files that prevents us from
displaying the fields in the right order. Also the shipping fields may look different than the billing fields, because we don't add any html code to format the output.
If you want to change the order of the billing phone/email or the displayed output, you can follow these steps to disable our default output and add your own code:
Add the following hook to your theme (functions.php):
add_filter('F4/WCSPE/append_email_field_to_formatted_address', '__return_false');
add_filter('F4/WCSPE/append_phone_field_to_formatted_address', '__return_false'); // only for versions lesser than 5.6
Search in the template file emails/email-addresses.php
for the following code:
get_shipping_phone() ) : ?>
get_shipping_phone() ); ?>
and replace it with this code:
get_shipping_phone() ) : ?>
get_shipping_phone() ); ?>
get_meta('_shipping_email') ) : ?>
get_meta('_shipping_email') ); ?>
Search in the template file emails/plain/email-addresses.php
for the following code:
if ( $order->get_shipping_phone() ) {
echo $order->get_shipping_phone() . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
and replace it with this code:
if ( $order->get_shipping_phone() ) {
echo $order->get_shipping_phone() . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
if ( $order->get_meta('_shipping_email') ) {
echo $order->get_meta('_shipping_email') . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
Search in the template file order/order-details-customer.php
for the following code:
get_shipping_phone() ) : ?>
get_shipping_phone() ); ?>
and replace it with this code:
get_shipping_phone() ) : ?>
get_shipping_phone() ); ?>
get_meta('_shipping_email') ) : ?>
get_meta('_shipping_email') ); ?>
The code may vary in your theme, you just have to look for similar looking code.
Yes, absolutely!