Continuando la discussione da Automatizzare l’invio di email di invito a Discourse con Zapier:
Nel percorso per raggiungere i miei obiettivi, ho trovato questo argomento. È fantastico, ma Zapier non è gratuito,
quindi ho creato questi due snippet, spero siano utili per qualcuno. Inseriteli nel file functions.php del vostro tema.
E se avete altri codici utili simili a questi, fatemelo sapere
Voglio imparare di più sulla API di Discourse e sui modi gratuiti per collegarla a WordPress semplicemente scrivendo codice ^^!
Invita un utente a Discourse dopo che ha inviato un commento (stato in attesa)
function invite_forum_from_comment($comment_ID) {
$comment = get_comment( $comment_ID );
$comment_email = get_comment_author_email($comment);
$maybe_notify = ( '0' == $comment->comment_approved );
if ( $maybe_notify ) {
// invita l'utente
wp_remote_post( 'https://forum.yourdomain.com/invites', array(
'method' => 'POST',
'headers' => array('Content-Type' => 'multipart/form-data',
'Api-key' => 'yourapikey',
'Api-Username' => 'yourusername'),
'body' => array('email' => $comment_email,
'custom_message' => 'Grazie per il commento, mentre aspetti la moderazione, perché non unirti al nostro forum?!')
)
);
};
}
add_action('comment_post', 'invite_forum_from_comment');
Invita un utente a Discourse dopo aver effettuato un ordine WooCommerce
function invite_forum_from_order( $order_id ) {
// ottieni tutti i dati dell'ordine
$order = new WC_Order($order_id);
// ottieni l'email dell'utente dall'ordine
$order_email = $order->billing_email;
// invita l'utente
wp_remote_post( 'https://forum.yourdomain.com/invites', array(
'method' => 'POST',
'headers' => array('Content-Type' => 'multipart/form-data',
'Api-key' => 'yourapikey',
'Api-Username' => 'yourusername'),
'body' => array('email' => $order_email,
'custom_message' => 'Grazie per il tuo ordine, perché perdere tempo in attesa? Unisciti subito al nostro forum!')
)
);
}
// aggiungi questa nuova funzione alla pagina di ringraziamento
add_action( 'woocommerce_thankyou', 'invite_forum_from_order', 10, 1 );

