web-dev-qa-db-fra.com

Passer des données d'une page à un autre fichier/page dans wordpress

J'ai mon thème custome dans wordpress. C'est le chemin de mon thème custome. C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002

J'ai créé une page dans wordpress contenant des éléments de formulaire. Voici mon code de page:

 <form action="<?php bloginfo('stylesheet_directory'); ?>/Query.php" enctype="multipart/form-data" method="post" name="contact">
<label for="author">Name:</label> <input class="required input_field" id="author" type="text" name="author" />
    <div class="cleaner h10"></div>
    <label for="email">Email:</label> <input class="validate-email required input_field" id="email" type="text" name="email" />
    <div class="cleaner h10"></div>
    <label for="subject">Subject:</label> <input class="input_field" id="subject" type="text" name="subject" />
    <div class="cleaner h10"></div>
    <label for="text">Message:</label> <textarea class="required" id="text" cols="0" name="text" rows="0"></textarea>
    <div class="cleaner h10"></div>
    <label for="image">Image:</label><input type="file" name="file" />

    <input class="submit_btn float_l" id="submit" type="submit" name="submit" value="Send" />
    <input class="submit_btn float_r" id="reset" type="reset" name="reset" value="Reset" />

    </form>

Et voici mon code Query.php sous C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002 répertoire:

<?php
get_header();
?>

<?
$name=$_POST['author'];
$email=$_POST['email'];
$subject=$_POST['subject'];
$message=$_POST['text'];
$image=$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'],"imagess/".$image);
echo $name."<br/>";
echo $email."<br/>";
echo $subject."<br/>";
echo $message."<br/>";
echo "<img src='imagess/".$image."' alt='image'>";
?>
<?php
get_footer();
?>

Mais lorsque je soumets un formulaire, je reçois une erreur fatale:

Erreur fatale: appel de la fonction non définie get_header () dans C:\wamp\www\wordpress2\wp-content\themes\sscy1002\sscy1002\Query.php à la ligne 2

S'il vous plaît, aidez-moi à transmettre des données de transfert d'une page à un autre fichier (ou si Page) dans wordpress. J'ai aussi cherché réponse sur google mais j'ai essayé tout le chemin que j'ai obtenu de google mais ne fonctionnait pas.

Désolé pour le formatage incorrect de Question. Aidez-moi, s'il vous plaît!!!! Merci!!!

1
Bhuvnesh Gupta

Vous pouvez essayer d'utiliser functions.php pour gérer la soumission du formulaire et envoyer les données via AJAX.

Ajoutez un champ caché dans votre formulaire avec l'action à entreprendre (sur functions.php):

<input type="hidden" name="action" value="save_contact"/>

Dans votre footer.php, ajoutez le code jQuery pour gérer la requête AJAX:

jQuery('#your-form').submit(ajaxSubmit);
function ajaxSubmit(e){
    e.preventDefault();
var formData = jQuery(this).serialize()

jQuery.ajax({
    type:"POST",
    url: "<?php bloginfo('url'); ?>/wp-admin/admin-ajax.php",
        data: formData,
        success: function(response){
       //SHOW CONFIRMATION
    },
    error: function(error){
       //SHOW ERROR MESSAGE
    }
});
return false;
}

Enfin, dans votre fichier functions.php:

add_action('wp_ajax_save_contact', 'save_contact');
add_action('wp_ajax_nopriv_save_contact', 'save_contact');
function save_contact(){
     //Do whatever you want here...
}

J'espère que ça aide! :)

1
Bruno Rodrigues

ajoute le code suivant avant get_header ()

require_once('../../../wp-load.php');

si vous obtenez une erreur parce que votre fichier n’est pas destiné à une page créée avec wordpress, c’est un fichier php, vous devez inclure le fichier load.php pour charger toutes les fonctions requises.

0
Vikram Singh

Vous devriez utiliser http://example.com/page-slug/

où page-slug est la page créée par make Query.php en tant que modèle.

<form action="http://example.com/page-slug/" enctype="multipart/form-data" method="post" name="contact">
0
ash patel