Telegram Bot: riportare gli eventi inseriti con Event Organiser

In questo tutorial vediamo come far iteragire telegram bot con il plugin Event Organiser attraverso il plugin custom da noi creato in precedenza (questo articolo)

Per prima cosa necessita creare il comando eventi, per far questo è sufficiente inserire la striga sotto riportata nel file telegram-bot-custom.php


if ( $text == 'eventi') {
telegram_sendmessage( $telegram_user_id, eventi());
}

se si utilizzano le tastiere dinamiche il comando sopra riportato varia un po’ e per le modifiche si rimanda all’articolo Telegram Bot: Come impostare tastiere dinamiche

Il comando richiama una funzione denominata eventi pertanto ora necessita riportare la funzione nel nostro plugin.


function eventi() {
	$testo  = 'Ciao  %FIRST_NAME%, questi sono gli eventi in programma:'.PHP_EOL;
	$testo .=  PHP_EOL;

	$args = array(
		'posts_per_page'   => -1,
		'post_type'        => 'event',
		'suppress_filters' => false,
		'orderby'          => 'eventstart',
		'order'            => 'ASC',
		'showrepeats'      => 1,
		'group_events_by'  => '',
		'showpastevents'   => false,
		'no_found_rows'    => true,
	);	
	
	$eventi = get_posts($args);
	foreach( $eventi as $post) {
		$date = eo_get_the_start('j F Y', $post->ID,null,$post->occurrence_id);
		$timest = eo_get_the_start('H i', $post->ID,null,$post->occurrence_id);
		$timeend = eo_get_the_end('H i', $post->ID,null,$post->occurrence_id);
		$returner .= PHP_EOL .'*'.$date.' orario: '.$timest.' - '.$timeend.'*'.PHP_EOL .'['.$post->post_title.']('.get_permalink($post->ID).')';
		if ( empty($post->post_excerpt) ){
			$content = $post->post_content;
			$returner .= PHP_EOL . wp_trim_words( $content, $num_words = 50, $more = '...' );	
		}else{
			$returner .= PHP_EOL . $post->post_excerpt; 
		}
		$returner .= PHP_EOL;
	}	
	
	$testo .= $returner; 
	
	return $testo;
} 

A questo punto salvare il file telegram-bot-custom.php modificato e ricaricarlo nel sito in produzione.

Risultato finale

Telegram-bot event organiser