Показывать настраиваемые поля из настраиваемого типа сообщения на странице подтверждения заказа и по электронной почте пPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Показывать настраиваемые поля из настраиваемого типа сообщения на странице подтверждения заказа и по электронной почте п

Сообщение Anonymous »

У меня есть собственный тип записи WordPress с именем Properties и ключом свойства типа записи. Этот тип сообщения имеет несколько настраиваемых полей:
  • имя,
  • фамилия,
  • адрес электронной почты,
  • номер телефона,
  • альтернативный номер телефона.
Как тип записи, так и настраиваемые поля создаются с помощью плагина расширенных настраиваемых полей (ACF).
Во внешнем интерфейсе у меня есть блок одного продукта 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 ... d-email-af
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»