{"id":1968,"date":"2014-08-31T09:28:38","date_gmt":"2014-08-31T09:28:38","guid":{"rendered":"http:\/\/musilda.cz\/?p=1968"},"modified":"2014-08-31T09:28:38","modified_gmt":"2014-08-31T09:28:38","slug":"fitrovani-objednavek-ve-woocommerce-dle-casoveho-obdobi","status":"publish","type":"post","link":"https:\/\/affinite.io\/cs\/fitrovani-objednavek-ve-woocommerce-dle-casoveho-obdobi\/","title":{"rendered":"Fitrov\u00e1n\u00ed objedn\u00e1vek ve Woocommerce dle \u010dasov\u00e9ho obdob\u00ed"},"content":{"rendered":"<p>Pokud provozujete Woocommerce eshop, jist\u011b v\u00edte, \u017ee v administraci objedn\u00e1vek, m\u00e1te mo\u017enost vypsat v\u0161echny za ur\u010dit\u00fd m\u011bs\u00edc. Dnes v\u00e1m uk\u00e1\u017ei, jak upravit filtraci, pro vybran\u00e9 \u010dasov\u00e9 obdob\u00ed.<\/p>\n<p>V\u011b\u0159\u00edm tomu, \u017ee p\u0159i v\u011bt\u0161\u00edm mno\u017estv\u00ed objedn\u00e1vek, je &nbsp;proch\u00e1zen\u00ed seznamu za m\u011bs\u00edc velmi frustruj\u00edc\u00ed. Proto jsem upravil fitrov\u00e1n\u00ed objedn\u00e1vek tak, aby jste si mohli vybrat datum od a do kter\u00e9ho chcete objedn\u00e1vky vypsat. Vzhledem k tomu, \u017ee by v\u0161e m\u011blo b\u00fdt co nejv\u00edce u\u017eivatelsk\u00e9 p\u0159\u00edv\u011btiv\u00e9, pou\u017eijeme datapicker, co\u017e je jQuery kalend\u00e1\u0159, pro v\u00fdb\u011br data. V\u00fdborn\u00e9 je, \u017ee WordPress ji\u017e datapocker obsahuje, tak\u017ee se nemus\u00edme starat o vkl\u00e1d\u00e1n\u00ed jQuery scriptu od t\u0159et\u00ed strany.<\/p>\n<p>Nejprve za\u010dneme kontrolou, zda se jedn\u00e1 administraci, a\u0165 zbyte\u010dn\u011b nena\u010d\u00edt\u00e1me funkce i na frontendu.<\/p>\n<pre lang=\"php\">if(is_admin()){\n\n}\n\n<\/pre>\n<p>Mezi slo\u017een\u00e9 z\u00e1vorky budeme ps\u00e1t cel\u00fd k\u00f3d.<\/p>\n<p>P\u0159iprav\u00edme si funkci, kter\u00e1 n\u00e1m z vybran\u00fdch dat uprav\u00ed query dotaz.<\/p>\n<pre lang=\"php\">function musilda_filter( $where = '' ) {\nglobal $wpdb;\nif( isset( $_REQUEST['start_date'] ) &amp;&amp; !empty( $_REQUEST['start_date'] ) ){\n\n$start_date=$_REQUEST['start_date'];\n$where .= \" AND post_date &gt;='$start_date' \";\n\n}\n\nif( isset( $_REQUEST['end_date'] ) &amp;&amp; !empty( $_REQUEST['end_date'] ) ){\n\n$end_date=$_REQUEST['end_date'];\n$where .=\" AND post_date &lt;='$end_date' \";\n\n}\n\nreturn $where;\n}\n\n<\/pre>\n<p>Dal\u0161\u00edm krokem bude p\u0159id\u00e1n\u00ed where do query. K tomu pou\u017eijeme pre_get_posts a post_where:<\/p>\n<pre lang=\"php\">add_filter('pre_get_posts', 'wp_musilda_admin_filters');\n\nfunction wp_musilda_admin_filters($query) {\n\nglobal $pagenow;\n\nif( $query-&gt;is_admin &amp;&amp; ( 'edit.php' == $pagenow ) ) {\n\nif(isset($_REQUEST['start_date'])||isset($_REQUEST['end_date'])){\n\nadd_filter( 'posts_where', 'musilda_filter' );\n\n}\n\n}\n\nreturn $query;\n\n}\n\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Proto\u017ee budeme cht\u00edt pou\u017e\u00edt jQuery datepicker, mus\u00edme p\u0159idat script:<\/p>\n<pre lang=\"php\">add_action( 'admin_enqueue_scripts', 'enqueue_admin_scripts' );\nfunction enqueue_admin_scripts() {\nglobal $post;\nif ( !empty( $post-&gt;post_type )\n&amp;&amp; $post-&gt;post_type == 'shop_order' ){\nwp_enqueue_script( 'jquery-ui-datepicker' );\n}\n}\n\n<\/pre>\n<p>Kontrola toho, zda se jedn\u00e1 o shop_order je v tomto p\u0159\u00edpad\u011b na m\u00edst\u011b, proto\u017ee by jsme m\u011bli vkl\u00e1dat scripty, jen kdy\u017e je pot\u0159ebujeme.<\/p>\n<p>Jako posledn\u00ed zobraz\u00edme pole pro v\u00fdb\u011br datum\u016f a funk\u010dnost m\u00e1me hotovou<\/p>\n<pre lang=\"php\">add_action('restrict_manage_posts', 'wp_musilda_filters_dropdowns',2);\nfunction wp_musilda_filters_dropdowns() {\n\nglobal $post;\nif ( !empty( $post-&gt;post_type )\n&amp;&amp; $post-&gt;post_type == 'shop_order' ){\nglobal $wpdb;\n\nif( isset( $_REQUEST['start_date'] )\n&amp;&amp; isset( $_REQUEST['end_date'] ) ){\n\n$start_date = $_REQUEST['start_date'];\n$end_date = $_REQUEST['end_date'];\n\n}else{\n\n$start_date = '';\n$end_date = '';\n\n}\nglobal $post;\n\n?&gt;;\n&lt;input type=&quot;text&quot; name=&quot;start_date&quot; class=&quot;datepick&quot; value=&quot;\" placeholder=\"Start date\"&gt;\n&lt;input type=&quot;text&quot; name=&quot;end_date&quot; class=&quot;datepick&quot; value=&quot;\" placeholder=\"End date\"&gt;\n\n\njQuery(document).ready(function(){\njQuery('.datepick').datepicker({\ndateFormat: 'yy-mm-dd'\n});\n});\n\n&lt;!--?php\nreturn;\n}\n\n}\n\n\n\n&nbsp;\n\nFiltrov\u00e1n\u00ed p\u0159ed:\n\n<a href=\"http:\/\/musilda.cz\/wp-content\/uploads\/2014\/08\/Objedn\u00e1vky-\u2039-Woo-Canvas-\u2013-WordPress.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1969\" src=\"http:\/\/musilda.cz\/wp-content\/uploads\/2014\/08\/Objedn\u00e1vky-\u2039-Woo-Canvas-\u2013-WordPress.png\" alt=\"Objedn\u00e1vky \u2039 Woo Canvas \u2013 WordPress\" width=\"596\" height=\"81\"><\/a>\n\nFiltrov\u00e1n\u00ed po:\n\n<a href=\"http:\/\/musilda.cz\/wp-content\/uploads\/2014\/08\/Objedn\u00e1vky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476483550.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1970 size-full\" src=\"http:\/\/musilda.cz\/wp-content\/uploads\/2014\/08\/Objedn\u00e1vky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860.png\" alt=\"Objedn\u00e1vky \u2039 Woo Canvas \u2013 WordPress (1)\" width=\"403\" height=\"371\"><\/a>\n\n&nbsp;\n\nPokud budete cht\u00edt pou\u017e\u00edt jin\u00fd datepicker, sta\u010d\u00ed zm\u011bnit pou\u017eit\u00fd script. V p\u0159\u00edpad\u011b, \u017ee budete cht\u00edt stejnou filtraci i u ostatn\u00edch druh\u016f obsahu, sta\u010d\u00ed zru\u0161it kontrolu post_type.\n<\/pre>\n\n\n<p> Dal\u0161\u00ed u\u017eite\u010dn\u00e9 snippety najdete na str\u00e1nce <strong><a href=\"https:\/\/musilda.cz\/uzitecne-snippety-pro-woocommerce\/\" target=\"_blank\" rel=\"noreferrer noopener\">U\u017eite\u010dn\u00e9 snippety pro WooCommerce<\/a><\/strong> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pokud provozujete Woocommerce eshop, jist\u011b v\u00edte, \u017ee v administraci objedn\u00e1vek, m\u00e1te mo\u017enost vypsat v\u0161echny za ur\u010dit\u00fd m\u011bs\u00edc. Dnes v\u00e1m uk\u00e1\u017ei, jak upravit filtraci, pro vybran\u00e9 \u010dasov\u00e9 obdob\u00ed. V\u011b\u0159\u00edm tomu, \u017ee p\u0159i v\u011bt\u0161\u00edm mno\u017estv\u00ed objedn\u00e1vek, je &nbsp;proch\u00e1zen\u00ed seznamu za m\u011bs\u00edc velmi frustruj\u00edc\u00ed. Proto jsem upravil fitrov\u00e1n\u00ed objedn\u00e1vek tak, aby jste si mohli vybrat datum od a<\/p>\n","protected":false},"author":1,"featured_media":1970,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[19,25,29],"tags":[],"class_list":["post-1968","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-snippety","category-woocommerce","category-woocommerce-snippety"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860.png",403,371,false],"thumbnail":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860-150x150.png",150,150,true],"medium":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860-300x276.png",300,276,true],"medium_large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860.png",403,371,false],"large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860.png",403,371,false],"1536x1536":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860.png",403,371,false],"2048x2048":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860.png",403,371,false],"archive-list":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2014\/08\/Objednavky-\u2039-Woo-Canvas-\u2013-WordPress-1-e1409476550860-400x265.png",400,265,true]},"uagb_author_info":{"display_name":"Affinite","author_link":"https:\/\/affinite.io\/cs\/author\/affinite\/"},"uagb_comment_info":0,"uagb_excerpt":"Pokud provozujete Woocommerce eshop, jist\u011b v\u00edte, \u017ee v administraci objedn\u00e1vek, m\u00e1te mo\u017enost vypsat v\u0161echny za ur\u010dit\u00fd m\u011bs\u00edc. Dnes v\u00e1m uk\u00e1\u017ei, jak upravit filtraci, pro vybran\u00e9 \u010dasov\u00e9 obdob\u00ed. V\u011b\u0159\u00edm tomu, \u017ee p\u0159i v\u011bt\u0161\u00edm mno\u017estv\u00ed objedn\u00e1vek, je &nbsp;proch\u00e1zen\u00ed seznamu za m\u011bs\u00edc velmi frustruj\u00edc\u00ed. Proto jsem upravil fitrov\u00e1n\u00ed objedn\u00e1vek tak, aby jste si mohli vybrat datum od a","_links":{"self":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/1968","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=1968"}],"version-history":[{"count":0,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/1968\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media\/1970"}],"wp:attachment":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media?parent=1968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/categories?post=1968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/tags?post=1968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}