- имя,
- фамилия,
- адрес электронной почты,
- номер телефона,
- альтернативный номер телефона.
Во внешнем интерфейсе у меня есть блок одного продукта WooCommerce, который отображает подробную информацию о информацию о продавце с названием продукта, включая кнопку «Добавить в корзину».
Когда пользователь нажимает кнопку «Добавить в корзину», я хочу проверить, какой объект недвижимости просматривает пользователь, и получить правильную контактную информацию этого товара. конкретный пост/объект и добавьте эту информацию в подтверждение заказа, когда пользователь оплатил информационный продукт продавца.
Вот мой связанный код:
add_filter('woocommerce_add_cart_item_data', 'add_property_seller_info_to_cart', 10, 2);
function add_property_seller_info_to_cart($cart_item_data, $product_id) {
// Check if the product being added is the 'Seller Information' product with ID 502
if ($product_id == 502) {
// Get the current property post being viewed
if (is_singular('property')) {
global $post;
if ($post) {
$property_id = $post->ID;
// Get the custom field values for the property seller
$seller_name = get_field('property_seller_name', $property_id);
$seller_surname = get_field('property_seller_surname', $property_id);
$seller_email = get_field('property_seller_email', $property_id);
$seller_phone = get_field('property_seller_phone', $property_id);
$seller_alternative_phone = get_field('property_seller_alternative_phone', $property_id);
// Add the seller information to the cart item data
$cart_item_data['property_seller_info'] = array(
'name' => $seller_name,
'surname' => $seller_surname,
'email' => $seller_email,
'phone' => $seller_phone,
'alternative_phone' => $seller_alternative_phone,
);
}
}
}
return $cart_item_data;
}
add_action('woocommerce_checkout_create_order_line_item', 'add_property_seller_info_to_order', 10, 4);
function add_property_seller_info_to_order($item, $cart_item_key, $values, $order) {
if (isset($values['property_seller_info'])) {
$seller_info = $values['property_seller_info'];
// Add seller information as meta data to the order item
$item->add_meta_data('Seller First Name', $seller_info['name']);
$item->add_meta_data('Seller Surname', $seller_info['surname']);
$item->add_meta_data('Seller Email', $seller_info['email']);
$item->add_meta_data('Seller Phone', $seller_info['phone']);
$item->add_meta_data('Seller Alternative Phone', $seller_info['alternative_phone']);
}
}
add_action('woocommerce_email_order_details', 'add_seller_info_to_order_email', 10, 4);
function add_seller_info_to_order_email($order, $sent_to_admin, $plain_text, $email) {
foreach ($order->get_items() as $item_id => $item) {
$seller_name = $item->get_meta('Seller First Name');
$seller_surname = $item->get_meta('Seller Surname');
$seller_email = $item->get_meta('Seller Email');
$seller_phone = $item->get_meta('Seller Phone');
$seller_alternative_phone = $item->get_meta('Seller Alternative Phone');
if ($seller_name && $seller_surname) {
echo 'Seller Information';
echo 'Name: ' . esc_html($seller_name) . ' ' . esc_html($seller_surname) . '
';
echo '
Email: ' . esc_html($seller_email) . '
';
echo '
Phone: ' . esc_html($seller_phone) . '
';
echo '
Alternative Phone: ' . esc_html($seller_alternative_phone) . '
';
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -email-aft