Zaloguj się
Rozpocznij

Dokumentacja Easy Digital Downloads

Dokumentacja, materiały referencyjne i samouczki dla Easy Digital Downloads 

Wykonywanie zapytań o produkty w bazie danych

Podczas tworzenia wokół Easy Digital Downloads możesz potrzebować zapytać bazę danych o dane produktów. Ten dokument pokaże kilka przykładów, jak to zrobić poprawnie.

Pobieranie pojedynczego produktu

Najlepszym sposobem na uzyskanie informacji o pojedynczym produkcie jest użycie klasy EDD_Download. Akceptuje ona
download_id i zwraca obiekt z informacjami o pobranym pliku.

$download = new EDD_Download( 109 );

To zwróci obiekt podobny do tego:

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
)

Gdy masz już obiekt, możesz na nim uruchomić szeroką gamę metod, aby uzyskać informacje takie jak cena, warianty itp.
Pełna dokumentacja EDD_Download tutaj.

Pobieranie wielu produktów

Pobrane pliki to niestandardowy typ treści WordPress, więc możliwe jest uzyskanie identyfikatorów wielu pobranych plików za pomocą
get_posts(). Jeśli poprawnie określisz parametr pól, get_posts pobierze tylko identyfikatory, a zapytanie będzie znacznie szybsze. Musisz również co najmniej określić download dla typu posta. Przykład:

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

    $downloads = get_posts( $args );

Możesz użyć dowolnej opcji, którą chcesz w
get_posts(), aby zawęzić zapytanie.
Pełna dokumentacja get_posts() tutaj.

Jedną dodatkową opcją, której nie znajdziesz w dokumentacji
get_posts(), jest no_found_rows(). Usuwa ona niektóre dane wymagane do paginacji, ale znacznie przyspiesza zapytanie. Jeśli potrzebujesz paginacji, nie używaj tej opcji. Jeśli nie potrzebujesz paginacji, będzie wyglądać tak:

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

$downloads = get_posts( $args );

Powyższe zapytanie zwróci tablicę identyfikatorów pobranych plików, taką jak ta:

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

Praca z wieloma produktami

Gdy masz już tablicę identyfikatorów pobranych plików, możesz po prostu iterować po tablicy, tworząc obiekty EDD_Download w następujący sposób:

foreach ( $downloads as $key => $download_id ) {
	$download = new EDD_Download( $download_id );
	// do whatever you wish with each object
}
Czy ten artykuł był pomocny?

Zacznij sprzedawać już dziś!

Dołącz do ponad 50 000 sprytnych właścicieli sklepów i zacznij korzystać z najłatwiejszego sposobu sprzedaży produktów cyfrowych za pomocą WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]