Skip to content

Instantly share code, notes, and snippets.

@ahmedch1
Created March 18, 2023 08:29
Show Gist options
  • Save ahmedch1/53c0b7fe97b6d5350be72b2d7cb3cc84 to your computer and use it in GitHub Desktop.
Save ahmedch1/53c0b7fe97b6d5350be72b2d7cb3cc84 to your computer and use it in GitHub Desktop.
<?php
/*
Plugin Name: Posts FE
Description: Posts FE
Version: 1.0
*/
// Enregistrement du shortcode pour le formulaire
add_shortcode('mon_formulaire', 'mon_formulaire_shortcode');
function mon_formulaire_shortcode() {
$html = '
<form method="post">
<label for="titre">Titre:</label>
<input type="text" name="titre" id="titre" required>
<br>
<label for="texte">Texte:</label>
<textarea name="texte" id="texte" required></textarea>
<br>
<button type="submit">Envoyer</button>
</form>
';
return $html;
}
add_action('init', 'mon_formulaire_handler');
function mon_formulaire_handler() {
if(isset($_POST['titre']) && isset($_POST['texte'])) {
$titre = $_POST['titre'];
$texte = $_POST['texte'];
// Validation du champ de titre
$existing_post = get_page_by_title($titre, OBJECT, 'post');
if($existing_post != null) {
// Affichage d'un message d'erreur si un article avec le même titre existe déjà
echo "Erreur: un article avec le même titre existe déjà.";
return;
}
// Création d'un nouvel article non publié
$new_post = array(
'post_title' => $titre,
'post_content' => $texte,
'post_status' => 'draft',
'post_type' => 'post'
);
$post_id = wp_insert_post($new_post);
$to = get_option('admin_email');
$subject = 'Nouvel article créé';
$message = 'Un nouvel article a été créé: ' . $titre . '.\n\n' . $texte;
wp_mail($to, $subject, $message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment