Как отключить метабокс «История пожертвований»

В этой статье рассмотрим как отключить метабокс "История пожертвований" Лейки при редактировании компании.

Проблема: Лейка для отображения данного метабокса запрашивает всех доноров компании, но когда их слишком много - памяти сервера может не хватить и на этом моменте дальнейший рендер прекращается, что ломает страницу. Например, на 25к доноров 512Мб памяти сервера на одном из сайтов не хватило.

Так как данный список далеко не всегда нужен при создании/редактировании компании, то одно из решений - удалить метабокс:

add_action( 'add_meta_boxes', 'remove_meta_box_leyka_campaign_donations', 11 );

function remove_meta_box_leyka_campaign_donations() {
	remove_meta_box( 'leyka_campaign_donations', 'leyka_campaign', 'normal' );
}

Чтобы осталась возможность при надобности посмотреть доноров компании - создадим метабокс с ссылкой на такой список, предоставляемый Лейкой через фильтрацию в списке всех доноров сайта:

add_action( 'add_meta_boxes', 'add_meta_box_list_donors', 11 );

function add_meta_box_list_donors() {
	add_meta_box(
		'leyka_campaign_list_donors',
		'Список доноров',
		'list_donors_meta_box_content',
		'leyka_campaign',
		'side',
		'low'
	);
}

function list_donors_meta_box_content( $post ) {
	$url = admin_url( 'edit.php?s&post_type=leyka_donation&campaign=' . $post->ID );

	printf( '<a href="%s" target="_blank">Посмотреть список доноров</a>', esc_url( $url ) );
}