WordPress.org

Make WordPress Core

Ticket #23705: plugin.php

File plugin.php, 2.1 KB (added by squallbreizh, 14 months ago)

code which produce the error

Line 
1<?php
2/*
3Plugin Name: Ajax Départements
4Description: Récupère les sous categories(départements) d'une categorie(région)
5Version: 0.1
6Author: EnessFr
7*/
8
9//Enregstrement du trigger et du callback
10add_action( 'wp_ajax_dpt-ajax-request', 'ajaxGetDepartement' );
11add_action( 'wp_ajax_nopriv_dpt-ajax-request', 'ajaxGetDepartement' );
12
13//insertion du script
14wp_enqueue_script( 'dpt-ajax-request', plugin_dir_url( __FILE__ ) . 'ajax.js', array( 'jquery' ), null, true );
15
16//Enregistrement de l'url ajax
17wp_localize_script( 'dpt-ajax-request', 'dptAjaxRequest', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
18
19//callback ajax
20function ajaxGetDepartement(){
21$departements = null;
22$regionToExclude = array();
23$tmpRegionName = $_POST['region'];
24
25//Récupération des régions parents
26$regionsParents = get_terms('category',array(
27    'parent' => 0,
28    'hide_empty' => false,
29    ));
30
31foreach($regionsParents as $rg){
32    array_push($regionToExclude, $rg->term_id);
33}
34array_push($regionToExclude, 1); // 1 = catégorie non-classé
35
36//Récupération de la région passée en arguments
37if(strval($_POST['region']) != 'wqsftaxoall'){ // une région valable est reçus
38    $tmpRegion = get_terms('category',array(
39        'slug' => $tmpRegionName,
40        'hide_empty' => false,
41        )
42    );
43
44    $regionParent = $tmpRegion[0]->term_id;
45
46    //Récupération des départements
47    $departements = get_terms('category',array(
48        'child_of' => $regionParent,
49        'hide_empty' => false,
50        'orderby' => 'name',
51        'order' => 'ASC',
52        'exclude' => $regionToExclude,
53        ));
54}else{ //récupération de tous les départements
55
56    //Récupération des départements
57    $departements = get_terms('category',array(
58        'hide_empty' => false,
59        'orderby' => 'name',
60        'order' => 'ASC',
61        'exclude' => $regionToExclude,
62        ));
63
64}
65
66//Construction et afichage des résultats
67$options = '<option selected value="wqsftaxoall">Tous les départements</option>';
68
69foreach($departements as $dpt){
70    $options .= '<option value="'.$dpt->slug.'">'.$dpt->name.'</option>';
71}
72
73echo $options;
74die();
75}
76
77?>