Варианты продукта не имеют возможности «delete_posts» - PullRequest
0 голосов
/ 03 декабря 2018

Я сделал так, чтобы вариации продуктов Woocommerce отображались в главном меню администратора в виде «списка типов записей».

add_filter('woocommerce_register_post_type_product_variation', 'my_func1');
function my_func1($arr){
$arr['public'] = true;
$arr['supports'] = array('title', 'editor', 'custom-fields');
$arr['menu_icon'] = 'dashicons-calendar-alt';
$arr['menu_name'] = 'Dates';
$arr['label'] = 'Dates';
return $arr;
}

При просмотре страницы администратора пост-типа в режиме отладки я получаю:

Notice: Undefined property: stdClass::$delete_posts in /wp-admin/includes/class-wp-posts-list-table.php on line 400

Если я var_dump в строке 392 в class-wp-posts-list-table.php: var_dump($post_type_obj);

Результатом является объект без "delete_posts"определено, только" delete_post "определено.

["cap"]=> object(stdClass)#16026 (8) { 
["edit_post"]=> string(12) "edit_product" 
["read_post"]=> string(12) "read_product" 
["delete_post"]=> string(14) "delete_product" 
["edit_posts"]=> string(13) "edit_products" 
["edit_others_posts"]=> string(20) "edit_others_products" 
["publish_posts"]=> string(16) "publish_products" 
["read_private_posts"]=> string(21) "read_private_products" 
["create_posts"]=> string(13) "edit_products" }`

Это недосмотр?Почему это не часть capability_type='product'? Где эта возможность регистрируется?Как зарегистрировать возможность "delete_posts" для существующего post_type, зарегистрированного ядром Woocommerce?

1 Ответ

0 голосов
/ 04 декабря 2018

Кажется, что это помогло прочитать кодекс WordPress более тщательно ...

Вы можете установить map_meta_cap в регистре хук:

add_filter('woocommerce_register_post_type_product_variation', 'my_func1');
function my_func1($arr){
$arr['public'] = true;
$arr['supports'] = array('title', 'editor', 'custom-fields');
$arr['menu_icon'] = 'dashicons-calendar-alt';
$arr['menu_name'] = 'Dates';
$arr['label'] = 'Dates';
$arr['map_meta_cap'] = true;
return $arr;
}

Это поднимает возможности, которые мне показалисьбыть недостающим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...