Nel caso specifico di Wordpress, la soluzione di avere il database su un altro server può non essere una gran mossa, in quanto la logica applicativa è contenuta nel file functions.php del tema e/o nei plugin per cui il cliente potrebbe trovarsi, nel peggiore dei casi senza tabelle nel db (se invece le tabelle del db vengono create da codice, il cliente può ricrearsi tutto da solo).
Considera che certi provider non consentono connessioni da/verso database esterni alla loro rete per cui dovresti verficare di volta in volta questa possibilità.
Un altra soluzione (da testare) è offuscare il codice php (quello da te realizzato) con programmi quali ioncube. In questo modo il codice sorgente non è in chiaro e in più si può creare un file di licenza con scadenza. Ad es. se il cliente ha 30 giorni di tempo per pagare potresti impostare la licenza a 30giorni... Su WP non ho ancora testato personalmente questa soluzione, mentre con script php generici, funziona tutto benissimo
Per il funzionamento di ioncube è necessario che sul server sia installato il modulo specifico. In molti hosting è già presente come default.