{"id":5276,"date":"2019-09-07T11:15:07","date_gmt":"2019-09-07T11:15:07","guid":{"rendered":"https:\/\/musilda.cz\/?p=5276"},"modified":"2019-09-07T11:15:07","modified_gmt":"2019-09-07T11:15:07","slug":"wordpress-snippet-kam-s-nim","status":"publish","type":"post","link":"https:\/\/affinite.io\/cs\/wordpress-snippet-kam-s-nim\/","title":{"rendered":"WordPress snippet &#8211; Kam s n\u00edm?"},"content":{"rendered":"\n<p>Naprosto b\u011b\u017en\u011b se za\u010d\u00e1te\u010dn\u00edk setk\u00e1v\u00e1 s t\u00edm, \u017ee dostane od program\u00e1tora radu, s kterou nev\u00ed, jak m\u00e1 nalo\u017eit. M\u00e1m na mysli snippety, kter\u00e9 m\u016f\u017eete naj\u00edt na bloz\u00edch, v diskuz\u00edch a podobn\u011b. <\/p>\n\n\n\n<p>Proto jsem sepsal tento \u010dl\u00e1nek, abych pomohl u\u017eivatel\u016fm WordPressu, kte\u0159\u00ed s t\u00edm nemaj\u00ed zku\u0161enosti, pochopit, jak snippety funguj\u00ed a jak s nimi nakl\u00e1dat. <\/p>\n\n\n\n<p>Kdy\u017e jsem upravoval n\u011bkter\u00e9 z m\u00fdch plugin\u016f, \u010dasto jsem p\u0159id\u00e1val do k\u00f3du akce a filtry, jeliko\u017e jsem se cht\u011bl vyhnout zbyte\u010dn\u00e9mu komplikov\u00e1n\u00ed administrace pluginu a bobtn\u00e1n\u00ed zdrojov\u00e9ho k\u00f3du. <\/p>\n\n\n\n<p><strong>P\u0159\u00edkladem m\u016f\u017ee b\u00fdt \u00faprava ceny u pluginu pro Z\u00e1silkovnu<\/strong><\/p>\n\n\n\n<p>Plugin na z\u00e1klad\u011b hmotnosti objedn\u00e1vky hled\u00e1 nastaven\u00ed pro ur\u010dit\u00fd rozsah, \u0159ekn\u011bme od dvou, do p\u011bti kilogram\u016f, proto\u017ee objedn\u00e1vka v\u00e1\u017e\u00ed t\u0159i kilogramy. <\/p>\n\n\n\n<p>Toto nastaven\u00ed vlo\u017e\u00ed do prom\u011bnn\u00e9 $cost a ta se d\u00e1le p\u0159ed\u00e1v\u00e1 metod\u011b add_rate(), \u010d\u00edm\u017e se vytvo\u0159\u00ed polo\u017eka dopravy s definovanou cenou. <\/p>\n\n\n\n<p>Plugin pro Z\u00e1silkovnu umo\u017e\u0148uje nastavit cenu dle hmotnosti, ale jak postupovat, pokud pot\u0159ebujeme cenu zm\u011bnit, proto\u017ee jeden produkt, kter\u00fd prod\u00e1v\u00e1me, mus\u00ed m\u00edt speci\u00e1ln\u00ed obal, ay se nepo\u0161kodil? <\/p>\n\n\n\n<p>P\u0159id\u00e1vat dal\u0161\u00ed nastaven\u00ed do pluginu by bylo matouc\u00ed a \u00faprava pro konkr\u00e9tn\u00ed e-shop nem\u00e1 smysl, proto\u017ee je t\u0159eba udr\u017eovat kompatibilitu a aktualizovatelnost pro v\u0161echny u\u017eivatele pluginu. <\/p>\n\n\n\n<p><strong>A zde p\u0159ich\u00e1z\u00ed na \u0159adu pou\u017e\u00edt\u00ed filtru<\/strong><\/p>\n\n\n\n<p>Vezmeme prom\u011bnnou $cost a pro\u017eeneme ji filtrem:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>$cost = apply_filters( &#8218;zasilkovna_shipping_cost&#8216;, $cost, $country, $weight );<\/p><\/blockquote>\n\n\n\n<p>Filtr umo\u017e\u0148uje vz\u00edt prom\u011bnnou a pou\u017e\u00edt ji jako argument va\u0161\u00ed vlastn\u00ed funkce, spole\u010dn\u011b s pomocn\u00fdmi prom\u011bnn\u00fdmi, kter\u00e9 jsou v tomto p\u0159\u00edpad\u011b zem\u011b a hmotnost z\u00e1silky. <\/p>\n\n\n\n<p>A d\u00edky tomu m\u016f\u017ee fungovat \u00faprava, jen\u017e, pokud je v ko\u0161\u00edku produkt s id 31, ztrojn\u00e1sob\u00ed cenu dopravy pomoc\u00ed Z\u00e1silkovny:<\/p>\n\n\n\n\n\n\n\n<p><strong>Pokud jste do\u010detli a\u017e sem, do\u010dk\u00e1te se kone\u010dn\u011b pointy<\/strong><\/p>\n\n\n\n<p>Na za\u010d\u00e1tku jsem psal, \u017ee u\u017eivatel\u00e9 si \u010dasto nev\u011bd\u00ed rady s kouskem k\u00f3du, kter\u00fd jim n\u011bkdo porad\u00ed, nebo jim ho po\u0161le program\u00e1tor. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Co tedy d\u011blat s WordPress snippetem?<\/h2>\n\n\n\n<p>M\u00e1te dv\u011b mo\u017enosti:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>vlo\u017e\u00edte jej do souboru functions.php v \u0161ablon\u011b<\/li><li>vlo\u017e\u00edte jej do pluginu ve slo\u017ece wp-content\/plugins<\/li><\/ul>\n\n\n\n<p><strong>Vlo\u017een\u00ed snippetu do functions.php<\/strong><\/p>\n\n\n\n<p>Soubor functions.php je sou\u010d\u00e1st\u00ed WordPress \u0161ablony a pokud snippet zkop\u00edrujete a vlo\u017e\u00edte jej na konec souboru, m\u011bl by okam\u017eit\u011b za\u010d\u00edt fungovat. <\/p>\n\n\n\n<p>Bohu\u017eel, soubor \u010dasto funguje jako komora s haramp\u00e1d\u00edm, kde se hromad\u00ed v\u011bci, o kter\u00fdch u\u017e nikdo nev\u00ed, kdo a pro\u010d je tam d\u00e1val, ale v\u0161ichni se je boj\u00ed smazat. <\/p>\n\n\n\n<p>Nesm\u00edte zapomenout, \u017ee pokud pou\u017e\u00edv\u00e1te child theme, mus\u00edte d\u00e1t snippet do aktivn\u00ed child theme. <\/p>\n\n\n\n<p>Nev\u00fdhodou souboru functions.php je, \u017ee pokud m\u011bn\u00edte \u0161ablonu, sma\u017eete i snippety.<\/p>\n\n\n\n<p><strong>Vlo\u017een\u00ed do pluginu<\/strong><\/p>\n\n\n\n<p>Dal\u0161\u00edm zp\u016fsobem, jak pou\u017e\u00edt snippet, je vytvo\u0159it si vlastn\u00ed plugin. Nen\u00ed to tak n\u00e1ro\u010dn\u00e9, jak to vypad\u00e1. Plugin nemus\u00ed b\u00fdt komplikovan\u00fd, sta\u010d\u00ed jeden php soubor, do kter\u00e9ho budete snippety p\u0159id\u00e1vat. <\/p>\n\n\n\n<p>M\u016f\u017ee vypadat t\u0159eba takto  <a href=\"https:\/\/github.com\/Musilda\/toret-zaokrouhleni\/blob\/master\/toret-zaokrouhleni.php\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Musilda\/toret-zaokrouhleni\/blob\/master\/toret-zaokrouhleni.php<\/a> <\/p>\n\n\n\n<p>D\u016fle\u017eit\u00e1 je jen hlavi\u010dka s informacemi, aby WordPress poznal, \u017ee se jedn\u00e1 o plugin. Do souboru pak m\u016f\u017eete p\u0159id\u00e1vat snippety, jak budete pot\u0159ebovat a \u00fapravy se hned projev\u00ed. <\/p>\n\n\n\n<p><strong>Jsem p\u0159\u00edznivcem pou\u017e\u00edv\u00e1n\u00ed plugin\u016f, to mus\u00edm p\u0159iznat. <\/strong><\/p>\n\n\n\n<p>Plugin m\u016f\u017ee z\u016fstat aktivn\u00ed i po zm\u011bn\u011b \u0161ablony, \u00fapravy nezmiz\u00ed. M\u016f\u017eete  do n\u011bj p\u0159id\u00e1vat dal\u0161\u00ed snippety, nebo si takov\u00fdch plugin\u016f m\u016f\u017eete vytvo\u0159it v\u00edce, podle typu \u00faprav.  <\/p>\n\n\n\n<p>Zde neplat\u00ed, \u017ee mnoho plugin\u016f v\u00fdrazn\u011b zpomaluje WordPress, proto\u017ee dopady tak mal\u00fdch soubor\u016f jsou minim\u00e1ln\u00ed. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Z\u00e1v\u011br<\/h2>\n\n\n\n<p>Pou\u017eit\u00ed snippet\u016f je pom\u011brn\u011b jednoduch\u00e9, ale mus\u00edte um\u011bt pracovat se soubory. Vlo\u017eit je m\u016f\u017eete do souboru functions.php, nebo do vlastn\u00edho mal\u00e9ho pluginu.<\/p>\n\n\n\n<p>V\u017edy do k\u00f3du pi\u0161te koment\u00e1\u0159e. Je \u00fapln\u011b jedno, jak to budete formulovat, ale za rok se k tomu vr\u00e1t\u00edte, nebo d\u00e1te p\u0159\u00edstup program\u00e1torovi a nikdo, ani vy nebudete v\u011bd\u011bt, pro\u010d to tam je. <\/p>\n\n\n\n<p> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Naprosto b\u011b\u017en\u011b se za\u010d\u00e1te\u010dn\u00edk setk\u00e1v\u00e1 s t\u00edm, \u017ee dostane od program\u00e1tora radu, s kterou nev\u00ed, jak m\u00e1 nalo\u017eit. M\u00e1m na mysli snippety, kter\u00e9 m\u016f\u017eete naj\u00edt na bloz\u00edch, v diskuz\u00edch a podobn\u011b. Proto jsem sepsal tento \u010dl\u00e1nek, abych pomohl u\u017eivatel\u016fm WordPressu, kte\u0159\u00ed s t\u00edm nemaj\u00ed zku\u0161enosti, pochopit, jak snippety funguj\u00ed a jak s nimi nakl\u00e1dat. Kdy\u017e<\/p>\n","protected":false},"author":1,"featured_media":4089,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[30,35],"tags":[],"class_list":["post-5276","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","category-wordpress-zacatecnici"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo.jpg",879,460,false],"thumbnail":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo-150x150.jpg",150,150,true],"medium":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo-300x157.jpg",300,157,true],"medium_large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo-768x402.jpg",640,335,true],"large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo.jpg",640,335,false],"1536x1536":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo.jpg",879,460,false],"2048x2048":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo.jpg",879,460,false],"archive-list":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/08\/wordpress-logo-400x265.jpg",400,265,true]},"uagb_author_info":{"display_name":"Affinite","author_link":"https:\/\/affinite.io\/cs\/author\/affinite\/"},"uagb_comment_info":3,"uagb_excerpt":"Naprosto b\u011b\u017en\u011b se za\u010d\u00e1te\u010dn\u00edk setk\u00e1v\u00e1 s t\u00edm, \u017ee dostane od program\u00e1tora radu, s kterou nev\u00ed, jak m\u00e1 nalo\u017eit. M\u00e1m na mysli snippety, kter\u00e9 m\u016f\u017eete naj\u00edt na bloz\u00edch, v diskuz\u00edch a podobn\u011b. Proto jsem sepsal tento \u010dl\u00e1nek, abych pomohl u\u017eivatel\u016fm WordPressu, kte\u0159\u00ed s t\u00edm nemaj\u00ed zku\u0161enosti, pochopit, jak snippety funguj\u00ed a jak s nimi nakl\u00e1dat. Kdy\u017e","_links":{"self":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/5276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/comments?post=5276"}],"version-history":[{"count":0,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/5276\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media\/4089"}],"wp:attachment":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media?parent=5276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/categories?post=5276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/tags?post=5276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}