Я хочу показать новую колонку в обзорах продуктов WooCommerce. Я попытался использовать приведенный ниже код для отображения нового столбца, но этот код не работает. Как я могу это сделать?
add_filter( 'woocommerce_product_reviews_table_columns', 'my_custom_reviews_column', 9999 );
function my_custom_reviews_column( $my_column ){
$new_column = array(
'custom' => 'Custom',
);
$my_column = array_slice( $my_column, 0, 3, true ) + $new_column + array_slice( $my_column, 3, NULL, true );
return $my_column;
}
add_action( 'woocommerce_product_reviews_table_column_', 'my_custom_column_content', 10, 2 );
function my_custom_column_content( $column, $product_id ){
if ( $column == 'custom' ) {
echo 'test';
}
}
Я думаю, проблема в «woocommerce_product_reviews_table_column_».
Код, который я написал, отображает только новый заголовок столбца.
woocommerce_product_reviews_table_column_
недопустимый хук, вам нужно присоединиться к $column_name
в этом хуке в конце.
В примере имя вашего столбца custom
, поэтому имя хука будет woocommerce_product_reviews_table_column_custom
, и вам не нужно if ( $column == 'custom' )
внутри функции.
Вы получите $item
параметр в действии для использования, который является объектом обзора/ответа. и если вам нужно получить идентификатор продукта с помощью этого объекта, вам придется использовать $item->comment_post_ID
для этого.
Вот ваш окончательный код:
add_action( 'woocommerce_product_reviews_table_column_custom', 'my_custom_column_content' );
function my_custom_column_content( $item ){
$product_id = $item->comment_post_ID;
echo 'Product ID:' . $product_id;
}