Gerobe, I finally figured this one out and apologies for making you try the various options.
The idea of the manual install till date has been to force the display of the posts overriding many conditions and so the “exclude on” only worked for the auto-insert.
You’ll notice in the code that it only kicks in on lines 518 and 519 in the plugin code file.
I realise this is not ideal because the echo function should respect all the settings. Could you please modify the echo function as follows and tell me if it works:
function echo_ald_crp( $args = array() ) {
global $single, $post, $crp_settings;
if ( ! in_the_loop() ) return;
$exclude_on_post_ids = explode( ',', $crp_settings['exclude_on_post_ids'] );
if ( in_array( $post->ID, $exclude_on_post_ids ) ) return; // Exit without adding related posts
parse_str( $crp_settings['exclude_on_post_types'], $exclude_on_post_types ); // Save post types in $exclude_on_post_types variable
if ( in_array( $post->post_type, $exclude_on_post_types ) ) return $content; // Exit without adding related posts
echo ald_crp( $args );
}