Я использую Woocommerce, и я интегрировал некоторые настраиваемые поля, чтобы пользователь мог указать новые значения, которые я позже добавлю к названию продукта.
Я использую update_post_meta
/ get_post_meta
для сохранения новая информация.Эта часть отлично работает.
Затем я использовал фильтр woocommerce_product_title
, чтобы обновить заголовок.Этот фильтр работает нормально, когда используется $product->get_title()
, но ничего не будет делать при использовании $product->get_name()
, что не является проблемой, поскольку в некоторых местах я не хочу добавлять новую информацию.
Я также использовал фильтр the_title
для страницы продукта.
В основном мой код выглядит следующим образом: return_custom()
будет функцией, которая будет создавать новую информацию на основе идентификатора продукта.
function update_title($title, $id = null ) {
$prod=get_post($id);
if (empty($prod->ID) || strcmp($prod->post_type,'product')!=0 ) {
return $title;
}
return $title.return_custom($id);
}
function update_product_title($title, $product) {
$id = $product->get_id();
return $title.return_custom($id);
}
add_filter( 'woocommerce_product_title', 'update_product_title', 9999, 2);
add_filter( 'the_title', 'update_title', 10, 2 );
Проблема возникает при добавлениитовар в корзину.Используемое имя является именем по умолчанию, поэтому моего приведенного ниже кода недостаточно для обновления названия продукта, используемого в корзине.То же самое для уведомлений.Я предполагаю, что это логично, так как электронное письмо будет использовать информацию корзины.
Я почти уверен, что все происходит внутри add_to_cart()
, но я не могу найти какой-либо фильтр /крючок, связанный с названием товара.
Как убедиться, что имя, использованное в корзине, подходит?Какой фильтр / ловушку я должен рассмотреть в дополнение к тем, которые я уже использую, чтобы добавить свою новую информацию к названию продукта в корзине?
Я хочу убедиться, что новый заголовок будет виден во времявесь процесс покупки.От страницы товара до уведомления по почте.