- WordPress :4.9.4
- Statut : non résolu
- Ce sujet contient 1 réponse, 1 participant et a été mis à jour pour la dernière fois par Timama, le il y a 6 années et 2 mois.
-
AuteurMessages
-
4 juillet 2018 à 16 h 46 min #2171374
Bonjour,
Ma configuration WP actuelle
- Version de PHP/MySQL :
- Thème utilisé : enfold
- Extensions en place :
- Nom de l’hébergeur : strato
- Adresse du site :
Problème(s) rencontré(s) :
Bonjour,
J’ai créé un plugin, sous wordpress, d’export xsl.
Il fonctionne très bien.
Mais j’aimerai lui ajouter une fonctionnalité, et là j’ai un problème.
Voici mon plugin qui fonctionne
ob_start();
add_action('admin_menu', function() {
add_submenu_page('edit.php?post_type=angebote', 'My Code-XLS Export plugin', 'My Code-XLS Export plugin', 'read', 'Code_CSV_export', 'Code_CSV_export_page' );
});
function Code_CSV_export_page() {
if(is_admin()){
global $wpdb;
if(isset($_POST['exportbtn'])){
if(empty($_POST['ID_angebot_enter']))
{ ?>
<tr> <th></th><td><br/><br/><br/> </td></tr>
<tr>
<th style="color:red";>VORSICHT</th>
<td style="color:red";> - Entschuldigung, Bitte, nicht vergessen die Angebots-ID-<br/><br/><br/></td>
</tr>
<tr> <th>Zum Export Seite </th><td > <a href="https://programm-maplus.de/wp-admin/edit.php?post_type=angebote&page=Code_CSV_export"> Hier clicken </a></td></tr>
<?php exit();
}
$ID_angebot = $_POST['ID_angebot_enter'];
ob_clean();
$fh = @fopen( 'php://output', 'w' );
//fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));
$header_row = array(
0 =>'ID ANGEBOT',
1 =>'ANGEBOT',
2 =>'ENDDATUM',
3 =>'FIRMENNAMEN',
4 =>'CODE',
5 =>'VERWENDET',
6 =>'TITEL',
7 =>'NACHNAME',
8 =>'VORNAME',
9 =>'HERUNTERLADEN DATUM'
);
$data_rows = array();
$query = $wpdb->prepare("SELECT * FROM wpPGRmaplus_angebote WHERE `id_angebot`=$ID_angebot ");
$results = $wpdb->get_results($query);
foreach ( $results as $result ) {
$row = array();
$row [0] = $result -> id_angebot;
$row [1] = utf8_decode($result -> angebot_name);
$row [2] = $result -> enddatum;
$row [3] = html_entity_decode(utf8_decode($result -> firmenname), ENT_QUOTES, 'UTF-8');
$row [4] = $result -> code;
$row [5] = $result -> verwendet;
$row [6] = $result -> Titel;
$row [7] = html_entity_decode(utf8_decode($result -> Nachname), ENT_QUOTES, 'UTF-8');
$row [8] = html_entity_decode(utf8_decode($result -> Vorname), ENT_QUOTES, 'UTF-8');
$row [9] = $result -> herunterladen_datum;
$data_rows[] = $row;
}
fputcsv( $fh, $header_row,"\t", '"' );
foreach ( $data_rows as $data_row ) {
fputcsv( $fh, $data_row ,"\t", '"');
}
header("Content-Type: application/vnd.ms-excel; charset=UTF-8");
header("Content-Disposition: attachment; filename=".date('Ymd')."-"."Export-Angebot-".$ID_angebot.".xls"); //File name extension was wrong
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
fclose( $fh );
die();
}
?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post" id="export-form">
<table class="form-table">
<tbody>
<tr><th> </br> </br> </th> </tr>
<tr><th> </br> </br> </th> <td style="padding-bottom:60px; font-size: 25px; font-weight:bold;">Exportcodes und ihre Benutzer </td> </tr>
<tr><th> </br> </th> </tr>
<tr><th>ID des Angebots bezogen auf die Codeliste</th>
<?php $ID_angebot_enter = $custom_angebotenter["ID_angebot_enter"][0]; ?>
<td style="padding-top:20px;" ><input class="regular-text" id="ID_angebot_enter" type="text" name="ID_angebot_enter" value="<?php echo $ID_angebot_enter;?>" /></br>
<i> <?php echo 'Die ID wird im Angebot angezeigt -> Teil "Wie benutzt man das Angebot in Wordpress?"'; ?></i> <br/>
<i> <?php echo 'ACHTUNG, Export der Datenbank, abhängig vom gewählten Angebot;' ?></i> <br/> <br/> <br/> </td>
</tr>
<tr><th> </br> </th> <td style="padding-bottom:30px; font-weight:bold;"></br> Sie können auch die GANZ Codelist mit plugin "Database to Excel" exportieren </br></td> </tr>
<tr><th> Export in Excel File</th>
<td> <input class="button button-primary exportbtn" name="exportbtn" type="submit" name="table_display" value="Export"/></td>
</tr>
</tbody>
</table>
</form>
<?php } }J’ai donc sous wordpress, la possibilité d’exporter des données à partir d’un table.
Dans cette table, il y a des offres (angebote dans mon programme). Il y a bien sûr des ID pour chaque offre.
Dans le plugin, l’utilisateur doit entrer l’ID de l’offre.
Ce qui n’est pas pratique car il doit le connaitre ou aller les chercher sur une autre page.
Au lieu de mettre un input classique,
<input class="regular-text" id="ID_angebot_enter" type="text" name="ID_angebot_enter" value="<?php echo $ID_angebot_enter;?>" />
je voudrais donc mettre une liste déroulante des offres existante.
Je vais donc chercher mes offres dans la base de données et je les mets dans ma liste déroulante.
mais cela ne fonctionne pas.
VOici la partie du code que j’ai modifier pour mettre la liste déroulante
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post" id="export-form">
<table class="form-table">
<tbody>
<tr><th> </br> </br> </th> </tr>
<tr><th> </br> </br> </th> <td style="padding-bottom:60px; font-size: 25px; font-weight:bold;">Exportcodes und ihre Benutzer </td> </tr>
<tr><th> </br> </th> </tr>
<tr><th>ID des Angebots bezogen auf die Codeliste</th>
<td style="padding-top:20px;" >
<?php
wp_reset_postdata();
global $dropdownlist, $post;
$args_dropdownlist= array(
'post_type' => 'angebote',
//'orderby' => 'meta_value',
//'meta_key' => 'firmenname',
//'order' => 'asc',
'posts_per_page' =>-1,
);
$dropdownlist = new WP_Query($args_dropdownlist);
var_dump($dropdownlist);
?>
<select>
<?php
if ( $dropdownlist-> have_post()){
while ($dropdownlist->have_posts()) :
$dropdownlist->the_post();
$id_angebot = get_post_meta( $post->ID, 'id_angebot', true );
$angebot_name = get_post_meta( $post->ID, 'angebot_name', true );
$firmenname = get_post_meta( $post->ID, 'firmenname', true );
echo 'id_angebot= ' .$id_angebot;
echo 'angebot_name= ' .$angebot_name;
echo 'firmenname= ' .$firmenname;
?>
<option value="<?php echo $id_angebot;?>"> <?php echo $angebot_name.' / '.$firmenname.' / '.$id_angebot;?> </option>
<?php
endwhile;
wp_reset_postdata();
}?>
</select>
</br>
<i> <?php echo 'ACHTUNG, Export der Datenbank, abhängig vom gewählten Angebot;' ?></i> <br/> <br/> <br/> </td>
</tr>
<tr><th> </br> </th> <td style="padding-bottom:30px; font-weight:bold;"></br> Sie können auch die GANZ Codelist mit plugin "Database to Excel" exportieren </br></td> </tr>
<tr><th> Export in Excel File</th>
<td> <input class="button button-primary exportbtn" name="exportbtn" type="submit" name="table_display" value="Export"/></td>
</tr>
</tbody>
</table>
</form>
<?php } }Le problème est que le var_dump m’affiche quelque chose que je ne comprend pas ou en tout cas qui n’indique rien sur les offres.
Et pour mon test
<div>
<div>if ( $dropdownlist-> have_post())</div>
</div>
cela n’entre pas dedans.Avez vous une remarque pour l’affichage de ces cutom post typ dnas la liste déroulante ?
Merci beaucoup pour votre aide, remarques, avis ou indices
Timama
4 juillet 2018 à 17 h 06 min #2171379Je me dit qu’il y a peut etre interférence entre
$query = $wpdb->prepare("SELECT * FROM wpPGRmaplus_angebote WHERE `id_angebot`=$ID_angebot ");
$results = $wpdb->get_results($query);et
$dropdownlist = new WP_Query($args_dropdownlist);
c'est possible ?
- Cette réponse a été modifiée le il y a 6 années et 2 mois par Timama.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.