I’ve created custom checkout fields. I want to send the customer custom information after completing an order successfully. The script I’ve created works fine with Product-1, but it does not work with Product-2 and Product-3. This seems weird, as I only have three products.
Here is the code:
add_action('woocommerce_thankyou', 'send_custom_billing_email');
function send_custom_billing_email($order_id) {
if (!$order_id) return;
$order = wc_get_order($order_id);
$admin_email = get_option('admin_email'); // Get site admin email
$order_id = $order->get_id();
$product_ids = [455, 456, 457]; // List of relevant product IDs
$products_in_order = [];
// Collect products in order
foreach ($order->get_items() as $item) {
$product_id = $item->get_product_id();
if (in_array($product_id, $product_ids)) {
$products_in_order[] = $product_id;
}
}
if (in_array(457, $products_in_order)) {
// Get custom field data Product Id : 457
$name_on_diploma = get_post_meta($order_id, '_name_on_diploma', true);
$university_name = get_post_meta($order_id, '_university_name', true);
$university_address = get_post_meta($order_id, '_university_address', true);
$graduation_date = get_post_meta($order_id, '_graduation_date', true);
$degree_awarded = get_post_meta($order_id, '_degree_awarded', true);
$major = get_post_meta($order_id, '_major', true);
$extra_copies = get_post_meta($order_id, '_extra_copies', true);
$sample_proof = get_post_meta($order_id, '_sample_proof', true);
$other_information = get_post_meta($order_id, '_other_information', true);
$deliver_address = get_post_meta($order_id, '_deliver_address', true);
$order_priority = get_post_meta($order_id, '_order_priority', true);
$shipping_method_dp = get_post_meta($order_id, '_shipping_method_dp', true);
$email = get_post_meta($order_id, '_email', true);
// Email Subject
$subject = "New Order Received - Order #$order_id";
// Email Content
$message = "A new order has been placed. Below are the details:\n\n";
$message .= "Name on Diploma: $name_on_diploma\n";
$message .= "University Name: $university_name\n";
$message .= "University Address: $university_address\n";
$message .= "Graduation Date: $graduation_date\n";
$message .= "Degree Awarded: $degree_awarded\n";
$message .= "Major: $major\n";
$message .= "Extra Copies: $extra_copies\n";
$message .= "Sample Proof: $sample_proof\n";
$message .= "Other Information: $other_information\n";
$message .= "Shipping Address: $deliver_address\n";
$message .= "Order Priority: $order_priority\n";
$message .= "Shipping Method: $shipping_method_dp\n";
$message .= "Customer Email: $email\n";
$message .= "\nView Order: " . admin_url("post.php?post=$order_id&action=edit");
} if (in_array(456, $products_in_order)) {
// Get custom field data Product Id : 456
$name_on_transcript = get_post_meta($order_id, '_name_on_transcript', true);
$university_name_transcript = get_post_meta($order_id, '_university_name_transcript', true);
$university_address_transcript = get_post_meta($order_id, '_university_address_transcript', true);
$student_id_number_transcript = get_post_meta($order_id, '_student_id_number_transcript', true);
$graduation_date_transcript = get_post_meta($order_id, '_graduation_date_transcript', true);
$degree_awarded_transcript = get_post_meta($order_id, '_degree_awarded_transcript', true);
$dob_transcript = get_post_meta($order_id, '_dob_transcript', true);
$high_school_details_transcript = get_post_meta($order_id, '_high_school_details_transcript', true);
$gpa_transcript = get_post_meta($order_id, '_gpa_transcript', true);
$course_list_transcript = get_post_meta($order_id, '_course_list_transcript', true);
$extra_copies_transcript = get_post_meta($order_id, '_extra_copies_transcript', true);
$sample_proof_transcript = get_post_meta($order_id, '_sample_proof_transcript', true);
$other_information_transcript = get_post_meta($order_id, '_other_information_transcript', true);
$deliver_address_transcript = get_post_meta($order_id, '_deliver_address_transcript', true);
$order_priority_transcript = get_post_meta($order_id, '_order_priority_transcript', true);
$shipping_method_trascript = get_post_meta($order_id, '_shipping_method_trascript', true);
$email_transcript = get_post_meta($order_id, '_email_transcript', true);
// Email Subject
$subject = "New Order Received - Order #$order_id";
// Email Content
$message = "A new order has been placed. Below are the details:\n\n";
$message .= "Name on Transcript: $name_on_transcript\n";
$message .= "University Name: $university_name_transcript\n";
$message .= "University Address: $university_address_transcript\n";
$message .= "Student ID Number: $student_id_number_transcript\n";
$message .= "graduation Date Transcript: $graduation_date_transcript\n";
$message .= "Type of Degree Awarded: $degree_awarded_transcript\n";
$message .= "Date of Birth: $dob_transcript\n";
$message .= "High School Details: $high_school_details_transcript\n";
$message .= "GPA: $gpa_transcript\n";
$message .= "Course List: $course_list_transcript\n";
$message .= "Extra Copies: $extra_copies_transcript\n";
$message .= "Sample Proof: $sample_proof_transcript\n";
$message .= "Other Information: $other_information_transcript\n";
$message .= "Shipping Address: $deliver_address_transcript\n";
$message .= "Order Priority: $order_priority_transcript\n";
$message .= "Shipping Method: $shipping_method_trascript\n";
$message .= "Email: $email_transcript\n";
$message .= "\nView Order: " . admin_url("post.php?post=$order_id&action=edit");
} if (in_array(455, $products_in_order)) {
$name_on_dtp = get_post_meta($order_id, '_name_on_dtp', true);
$name_on_transcript_dtp = get_post_meta($order_id, '_name_on_transcript_dtp', true);
$university_college_dtp = get_post_meta($order_id, '_university_college_dtp', true);
$univer_collge_address_dtp = get_post_meta($order_id, '_univer_collge_address_dtp', true);
$student_number_id = get_post_meta($order_id, '_student_number_id', true);
$graduation_date_dtp = get_post_meta($order_id, '_graduation_date_dtp', true);
$type_degre_dtp = get_post_meta($order_id, '_type_degre_dtp', true);
$major_dtp = get_post_meta($order_id, '_major_dtp', true);
$dob_dtp = get_post_meta($order_id, '_dob_dtp', true);
$high_school_dtp = get_post_meta($order_id, '_high_school_dtp', true);
$dpa_dtp = get_post_meta($order_id, '_dpa_dtp', true);
$course_list_dtp = get_post_meta($order_id, '_course_list_dtp', true);
$extra_copies_dtp = get_post_meta($order_id, '_extra_copies_dtp', true);
$sample_proof_dtp = get_post_meta($order_id, '_sample_proof_dtp', true);
$other_information_dtp = get_post_meta($order_id, '_other_information_dtp', true);
$deliver_address_dtp = get_post_meta($order_id, '_deliver_address_dtp', true);
$order_priority_dtp = get_post_meta($order_id, '_order_priority_dtp', true);
$shipping_method_dtp = get_post_meta($order_id, '_shipping_method_dtp', true);
$email_dtp = get_post_meta($order_id, '_email_dtp', true);
// Email Subject
$subject = "New Order Received - Order #$order_id";
// Email Content
$message = "A new order has been placed. Below are the details:\n\n";
$message .= "Name on Diploma: $name_on_dtp\n";
$message .= "Name on Transcript: $name_on_transcript_dtp\n";
$message .= "University/College Name: $university_college_dtp\n";
$message .= "University/College Address: $univer_collge_address_dtp\n";
$message .= "Student ID Number: $student_number_id\n";
$message .= "Graduation Date: $graduation_date_dtp\n";
$message .= "Type of Degree Awarded: $type_degre_dtp\n";
$message .= "Major: $major_dtp\n";
$message .= "Date of Birth: $dob_dtp\n";
$message .= "High School Details: $high_school_dtp\n";
$message .= "GPA: $dpa_dtp\n";
$message .= "Course List: $course_list_dtp\n";
$message .= "Extra Copies: $extra_copies_dtp\n";
$message .= "Sample Proof: $sample_proof_dtp\n";
$message .= "Other Information: $other_information_dtp\n";
$message .= "Shipping Address: $deliver_address_dtp\n";
$message .= "Order Priority: $order_priority_dtp\n";
$message .= "Shipping Method: $shipping_method_dtp\n";
$message .= "Email: $email_dtp\n";
$message .= "\nView Order: " . admin_url("post.php?post=$order_id&action=edit");
}
// Send Email
wp_mail($admin_email, $subject, $message);
}
Another weird thing is that when I receive emails in my Gmail “Updates” tab, they are plain text, but in my “Primary” tab, they are HTML-formatted.
I’ve tried every possible way to make this work but I failed.
How can I figure it out?
]]>
I am finishing setting up my woocommerce emails and am facing an issue with the processed order email. The hi [first name] isn’t showing, it starts with: We have finished processing your order.
I haven’t altered the templates and am wondering what’s going on.
Any input would be appreciated.
Thanks
Annabelle
]]>add_action( 'woocommerce_email_before_order_table', function(){
if ( ! class_exists( 'WC_Payment_Gateways' ) ) return;
$gateways = WC_Payment_Gateways::instance(); // gateway instance
$available_gateways = $gateways->get_available_payment_gateways();
if ( isset( $available_gateways['bacs'] ) )
remove_action( 'woocommerce_email_before_order_table', array( $available_gateways['bacs'], 'email_instructions' ), 10, 3 );
}, 1 );
]]>Can anyone help me with that? If you need any sceenshots or something, pls tell me.