Connexion
Commencer

Documentation Easy Digital Downloads

Documentation, matériel de référence et tutoriels pour Easy Digital Downloads 

Interrogation des produits dans la base de données

En développant autour d'Easy Digital Downloads, vous pourriez avoir besoin d'interroger la base de données pour obtenir des données sur les produits. Ce document vous montrera plusieurs exemples de la manière de le faire correctement.

Obtenir un seul produit

La meilleure façon d'obtenir des informations sur un seul produit est d'utiliser la classe EDD_Download. Elle accepte un
download_id et renvoie un objet contenant des informations sur le téléchargement. Exemple :

$download = new EDD_Download( 109 );

Cela renverrait un objet comme celui-ci :

EDD_Download Object
(
    [ID] => 109
    [price:EDD_Download:private] => 
    [prices:EDD_Download:private] => 
    [files:EDD_Download:private] => 
    [file_download_limit:EDD_Download:private] => 
    [type:EDD_Download:private] => 
    [bundled_downloads:EDD_Download:private] => 
    [sales:EDD_Download:private] => 
    [earnings:EDD_Download:private] => 
    [notes:EDD_Download:private] => 
    [sku:EDD_Download:private] => 
    [button_behavior:EDD_Download:private] => 
    [post_author] => 2
    [post_date] => 2016-03-22 13:30:29
    [post_date_gmt] => 2016-03-22 13:30:29
    [post_content] => Buy my mp3!
    [post_title] => My MP3
    [post_excerpt] => 
    [post_status] => publish
    [comment_status] => closed
    [ping_status] => closed
    [post_password] => 
    [post_name] => my-mp3
    [to_ping] => 
    [pinged] => 
    [post_modified] => 2016-03-22 13:30:29
    [post_modified_gmt] => 2016-03-22 13:30:29
    [post_content_filtered] => 
    [post_parent] => 0
    [guid] => https://edd.dev/?post_type=download&p=109
    [menu_order] => 0
    [post_mime_type] => 
    [comment_count] => 0
    [filter] => raw
    [post_type] => download
)

Une fois que vous avez l'objet, il existe une grande variété de méthodes qui peuvent être exécutées sur celui-ci pour obtenir des informations telles que le prix, les variations, etc.
Documentation complète pour EDD_Download ici.

Obtenir plusieurs produits

Les téléchargements sont un type de contenu personnalisé de WordPress, il est donc possible d'obtenir les identifiants de plusieurs téléchargements en utilisant
get_posts(). Si vous spécifiez correctement le paramètre des champs, get_posts n'obtiendra que les identifiants, et la requête sera beaucoup plus rapide. Vous devrez également spécifier au moins download pour le post_type. Exemple :

    $args = array(
        'fields'    => 'ids',
        'post_type' => 'download',
    );

    $downloads = get_posts( $args );

Vous pouvez utiliser toutes les options que vous souhaitez dans
get_posts() pour affiner votre requête.
Documentation complète pour get_posts() ici.

Une option supplémentaire non trouvée dans la documentation de
get_posts() s'appelle no_found_rows(). Cela supprime certaines données nécessaires à la pagination, mais accélère considérablement votre requête. Si vous avez besoin de pagination, n'utilisez pas cette option. Si vous n'avez pas besoin de pagination, cela ressemblerait à ceci :

$args = array(
	'fields'        => 'ids',
        'post_type'     => 'download',
	'no_found_rows' => true,
);

$downloads = get_posts( $args );

La requête ci-dessus renverra un tableau d'identifiants de téléchargement comme celui-ci :

Array
(
    [0] => 109
    [1] => 82
    [2] => 79
    [3] => 61
    [4] => 42
)

Travailler avec plusieurs produits

Une fois que vous avez un tableau d'identifiants de téléchargement, vous pouvez simplement parcourir le tableau en créant des objets EDD_Download comme ceci :

foreach ( $downloads as $key => $download_id ) {
	$download = new EDD_Download( $download_id );
	// do whatever you wish with each object
}
Was this article helpful?

Commencez à vendre dès aujourd'hui !

Rejoignez plus de 50 000 propriétaires de boutiques avisés et commencez à utiliser le moyen le plus simple de vendre des produits numériques avec WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]