Aplicar OR a campos obligatorios en Contact Form 7

/**
* En formularios, si tenemos campos:
* – cita-phone (tel)
* – cita-email (email)
* Los hacemos validar con un OR, es decir, que uno de los dos esté relleno.
* @pre: Los campos tienen que estar como required (*)
*/
add_filter( 'wpcf7_validate_email*', 'custom_text_validation_filter', 20, 2 );
add_filter( 'wpcf7_validate_tel*', 'custom_text_validation_filter', 20, 2 );
function custom_text_validation_filter( $result, $tag ) {
    if ( ( 'cita-phone' == $tag->name ) || ( 'cita-email' == $tag->name ) ) {
        $phone = isset( $_POST['cita-phone'] ) ? trim( sanitize_text_field($_POST['cita-phone']) ) : '';
        $email = isset( $_POST['cita-email'] ) ? trim( sanitize_text_field($_POST['cita-email']) ) : '';
        
        $email = str_replace("hola@exampple.com", "", $email);
        $phone = str_replace("1234", "", $phone);
        
        // Si ninguno relleno, notificamos
        if ( ( strlen($phone) == 0 ) && ( strlen($email) == 0 ) ) {
            $result->invalidate( $tag, "Debe indicar al menos un email o teléfono." );
        }
    }
    return $result;
}
// Truqui para que se salte las validaciones anteriores y poder aplicar la de arriba condicional OR
function alter_wpcf7_posted_data( $data ) {
    if ( strlen($_POST['cita-phone']) == 0 ) {
        $_POST['cita-phone'] = $_POST['cita-phone'] . '1234';
    }
    if ( strlen($_POST['cita-email']) == 0 ) {
        $_POST['cita-email'] = $_POST['cita-email'] . 'hola@exampple.com';
    }
    
    return $data;
}
add_filter("wpcf7_posted_data", "alter_wpcf7_posted_data");