Solicitar un plugin desde otro plugin

Si has probado a trabajar con plugins propios para extender las necesidades de un wordpress, seguro que sabes que se te queda corto. Muchas veces necesitamos instalar otro plugin para añadir funcionalidades que ya están hechas sin necesidad de instalarlas dentro de nuestro plugin.

Con este trozo de código, puedes lanzar un aviso en al activar tu plugin para que el usuario instale otro plugin, y poner una URL a la búsqueda filtrada del repositorio de wordpress donde puede encontrarlo.

El plugin llamado como ejemplo es ACF, mi caja de herramientas favorita en wordpress.

Espero que os sirva.

// Require ACF plugin

add_action( 'admin_init', 'child_plugin_has_parent_plugin' );

function child_plugin_has_parent_plugin() {
    if ( is_admin() && current_user_can( 'activate_plugins' ) &&  !is_plugin_active( 'advanced-custom-fields/acf.php' ) ) {
        
        add_action( 'admin_notices', 'child_plugin_notice' );

        //deactivate_plugins( plugin_basename( __FILE__ ) ); 

        if ( isset( $_GET['activate'] ) ) {
            unset( $_GET['activate'] );
        }
    }
}

function child_plugin_notice(){
    ?><div class="error"><p><?php echo 'Hey buddy, Tomoe Framework requires the <a href="' . admin_url( 'plugin-install.php?s=Advanced+Custom+Fields&tab=search&type=term' ) . '">Advanced Custom Fields Plugin</a> to be installed and active.' ?></p></div><?php 
}

Fuente original: https://wordpress.stackexchange.com/questions/127818/how-to-make-a-plugin-require-another-plugin