Diskuze: Získání a vypsání dat z $order - WP/WC
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zadny z tech systemu nepouzivam.
"2-3 data ohledně DPH a přidat je již do hotové Simple faktury"
" cena za zboží bez DPH, kolik je sazba DPH, cena za ks s DPH."
// https://www.itnetwork.cz/dev-lighter/1416
$order = wc_get_order( $order_id );
$order_data = $order->get_data(); // The Order data
// https://www.itnetwork.cz/dev-lighter/1417 - jestli tohle je tvuj kod, tak tam mas neco podobneho
$order = wc_get_order($order_id);
Takze tam doplnis, co ti chybi a pak uz muzes vypisovat. Jen si vybrat z toho prvniho souboru, co by to melo byt, treba
$order = wc_get_order($order_id);
$order_data = $order->get_data(); // The Order data
$order_hipping_first_name = $order_data['shipping']['first_name'];
$order_shipping_last_name = $order_data['shipping']['last_name'];
echo $order_hipping_first_name;
echo $order_shipping_last_name
Ahoj, děkuji za odpověď, kód ale nefungoval, PHP vůbec neumím, ale s logikou na tom nejsem tak špatně, takže tvůj kód byl pro mě i odrazovým můstkem to trochu pochopit, takže jsem splácal toto, pro příklad:
<?php echo('Total: '); echo $order->get_total();?>
A funguje.
Ale bohužel nemůžu přijít ještě na jednu věc a to, jak spočítat
právě cenu bez DPH, potom samotné DPH a tak dále.
Jedná se o toto:
<?php $items = $this->get_order_items(); if( sizeof( $items ) > 0 ) : foreach( $items as $item_id => $item ) : ?>
<tr class="<?php echo apply_filters( 'wpo_wcpdf_item_row_class', $item_id, $this->type, $this->order, $item_id ); ?>">
<td class="product">
<?php $description_label = __( 'Description', 'woocommerce-pdf-invoices-packing-slips' ); // registering alternate label translation ?>
<span class="item-name"><?php echo $item['name']; ?></span>
<?php do_action( 'wpo_wcpdf_before_item_meta', $this->type, $item, $this->order ); ?>
<span class="item-meta"><?php echo $item['meta']; ?></span>
<dl class="meta">
<?php $description_label = __( 'SKU', 'woocommerce-pdf-invoices-packing-slips' ); // registering alternate label translation ?>
<?php if( !empty( $item['sku'] ) ) : ?><dt class="sku"><?php _e( 'SKU:', 'woocommerce-pdf-invoices-packing-slips' ); ?></dt><dt class="sku"><?php echo $item['sku']; ?></dt><?php endif; ?> | <dt class="sku"><?php if( !empty( $item['product'] ) ) _e( 'Ovečky: '); $this->product_attribute('Ovečky', $item['product']); ?></dt>
<?php if( !empty( $item['weight'] ) ) : ?><dt class="weight"><?php _e( 'Weight:', 'woocommerce-pdf-invoices-packing-slips' ); ?></dt><dd class="weight"><?php echo $item['weight']; ?><?php echo get_option('woocommerce_weight_unit'); ?></dd><?php endif; ?>
</dl>
<?php do_action( 'wpo_wcpdf_after_item_meta', $this->type, $item, $this->order ); ?>
</td>
<td><?php echo $item['quantity'],('ks'); ?></td>
<td><?php echo $item['price']; ?></td>
<td><?php echo $item['price']; ?></td>
<td><?php echo $item['price']; ?></td>
</tr>
<?php endforeach; endif; ?>
zde je kód, který počítá každý řádek zvlášť, logicky aby údaje seděly ke každému zboží na samostatném řádku. Na konci je právě <?php echo $item['price']; ?> a já bych potřeboval s tímto $item['price'] počítat. Když jsem jakožto noob dle logiky věci zkusil přidat do výpočtu, tak mi to vypisuje nulu.
Děkuji za pomoc.
Nerozumim tomu.
Tyto 3 prikazy ti vypisou, co je v $item.
echo '<pre>'; var_dump($item); echo '</pre>';
Ahoj,
s $item['price'] nemůžeš počítat tak jak jsi asi chtěl asi proto, že se
interně jedná o string (text), protože je v něm asi už zahrnuta i jednotka
(Kč). A i kdyby to šlo, tak to rozhodně nedělej!
Narušuješ tak model aplikace (provádíš výpočty v šabloně, tam nemají
co dělat), ikdyž teda zrovna WordPress je sám o sobě hrozná prasárna a
není tam žádný pořádný MVC (nebo podobný) model a dokonce ne vše je
psáno s pomocí OOP. Ale hlavně můžeš mít více zaseb DPH apod. a mohlo by
se ti velmi snadno v budoucnu stát, že to v té šabloně nepředěláš a
budeš mít na faktuře špatně spočítané údaje.
Když se podíváš, odkud se ta data do té šablony dostávají, tak najdeš metodu get_order_items a v ní vidíš, co vše máš v tom poli $item k dispozici a jak se to počítá. Odkaz na GitHub
Jestli jsem se správně díval, tak cena za zboží bez DPH je ex_price,
sazba DPH je tax_rates nebo calculated_tax_rates (nevím, jaký je v tom
rozdíl a nechce se mi to zkoumat
), cena za ks s DPH je single_price a cena za ks bez DPH je
ex_single_price.
Takže si do té šablony pouze přidej:
<td><?php echo $item['ex_price']; ?></td>
atd. a nic nepočítej. A pokud by jsi potřeboval něco, co tam opravdu už spočítané není, tak výpočty prováděj v té metodě get_order_items a předej si jen ten výsledek do šablony, kde ho pouze vypíšeš.
Jan Kerhart: "výpočty prováděj v té metodě get_order_items", jako, logika spravna, souhlasim, ale, pokud to bude chtit updatovat, tak na to bude muset myslet. Takze, doporucuji pouzit nejaky cesky text pro oznaceni tve hodnoty, aby se vyrazne lisil od originalni anglicky price_*
Zobrazeno 7 zpráv z 7.