Я начинаю ожидать, что в WooCommerce встроена какая-то «функция обновления», которая позволяет мне переименовывать только вариации post_title. И затем он возвращается к тому, что решили крючки / WooCommerce?
Я хочу добавить постфиксы типа "(Отменено)" к конкретным вариантам программно.
$new_title = get_the_title( $variationid ) . ' (Cancelled)';
wp_update_post(array('ID' =>$variationid, 'post_title' => $new_title));
Это только "висит" на некоторое время ...
Я попытался отключить этот хук, а затем изменить заголовок, но он все равно перезаписывается.
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_false' );
Есть ли способ заставить WooCommerce прекратить переписывать названия вариаций?
Мое решение основано на ответе @LoicTheAztec и использует логику, основанную на моем статусе поста "отменено".
add_filter( 'woocommerce_product_variation_title', 'filter_product_variation_title_callback', 10, 4 );
function filter_product_variation_title_callback( $variation_title, $product, $title_base, $title_suffix ) {
$id = $product->get_id();
$status = get_post_status($id);
if ($status == 'cancelled'){
return $variation_title . ' (' . __("Cancelled", "woocommerce") . ')';
} else {
return $variation_title;
}
}