ВОПРОС
У меня есть сайт, на котором я продаю обучающие видео. Оплата осуществляется через WooCommerce. Для того, чтобы отправить электронное письмо с гиперссылкой на видео-страницу по завершении заказа я использую «поле примечания к покупке». Это работает нормально, но если вы перейдете на страницу «Мои учетные записи», клиенты не смогут перейти на «Мои учетные записи» и увидеть все свои ссылки в одном месте, как они могут в «Доступных загрузках».
Я хотел бы показывать пользователям два дополнительных поля в таблице на странице my-account.php: «название продукта (товара)» и «примечание о покупке». В настоящее время в стандартной таблице есть 4 поля: «заказ», «доставка», «итого» и «статус».
Поскольку я не использую параметры доставки, т.к. продаю просто виртуальный продукт, я бы хотел изменить это поле на название продукта (товара). Как уже упоминалось, я хотел бы добавить поле «заметки о покупке» (здесь будет отображаться мой URL-адрес видео после завершения платежа). Важно, чтобы это поле для заметок о покупке можно было отобразить только после заполнения элемента. Это делается уже на странице order-details.php, но я хотел бы, чтобы это было в таблице на странице my-accounts.php
Текущий код этого поля примечания о покупке в поле order-details.php:
// Show any purchase notes
if($order->status==’completed’|| $order->status==’processing’) :
if($purchase_note = get_post_meta( $_product->id, ‘_purchase_note’, true)) :
echo ‘
‘. apply_filters(‘the_content’, $purchase_note) . ‘
‘;
endif;
endif;
endforeach;
endif;
do_action( ‘woocommerce_order_items_table’, $order );
?>
Может кто-нибудь показать мне, что мне нужно изменить в my-account.php, чтобы заполнить эти 2 дополнительных поля на этой странице?
ОТВЕТ
my-account.php звонит работает в других шаблонах, вам нужно my-orders.php. Поместите копию в папку вашей темы, чтобы сделать ее доказательством обновления.
Я предполагаю, что вы используете 1.6.6 здесь, потому что страница моей учетной записи изменилась с 2.0 и больше не содержит адрес доставки.
Удалите строку 50, в которой указан адрес доставки. Вы можете отредактировать / заменить его и позвонить в примечание о покупке со следующим кодом:
get_post_meta( $order->id, ‘_purchase_note’, true)
тогда вы можете получить название продукта (из вашего вопроса я предполагаю, что у вас есть только один продукт на заказ?):
foreach($order->get_items() as $item) {
$product_name = $item[‘name’];
}
затем просто вызовите $product_name в дополнительный столбец (скопируйте / вставьте / измените код другого столбца)