{"id":22864,"date":"2020-09-21T22:36:40","date_gmt":"2020-09-21T20:36:40","guid":{"rendered":"https:\/\/opensprinklershop.de\/?page_id=22864"},"modified":"2021-07-02T07:59:32","modified_gmt":"2021-07-02T05:59:32","slug":"der-shop-blob","status":"publish","type":"page","link":"https:\/\/opensprinklershop.de\/en\/der-shop-blob\/","title":{"rendered":"Der Shop Blog"},"content":{"rendered":"<h2>Vendidero &#8211; Germanized Pro &#8211; direktes Drucken aller Belege aus dem Backend<\/h2>\n<p>Meine Implementierung mit direktem Drucken ist sehr begehrt, daher ver\u00f6ffentliche ich Sie hiermit<\/p>\n<pre>\/\/ Add your custom order status action button (for orders with \"processing\" status)\r\nadd_filter( 'woocommerce_admin_order_actions', 'add_custom_order_status_actions_button', 100, 2 );\r\nfunction add_custom_order_status_actions_button( $actions, $order ) {\r\n\/\/ Display the button for all orders that have a 'processing' status\r\nif ( $order-&gt;has_status( array( 'processing' ) ) ) {\r\n\r\n\/\/Pr\u00fcfen ob alle Dokumente vorliegen:\r\n\/\/Rechnungen:\r\n$invoices = wc_gzdp_get_invoices_by_order( $order );\r\n\r\n$nr = 0;\r\n$nl = 0;\r\n$nd = 0;\r\nforeach( $invoices as $invoice ) {\r\n$file = $invoice-&gt;get_path();\r\n$nr = $nr+1;\r\n}\r\n\r\n$shipments = wc_gzd_get_shipments_by_order( $order );\r\n\r\nforeach( $shipments as $shipment ) {\r\nif ( $packing_slip = wc_gzdp_get_packing_slip_by_shipment( $shipment-&gt;get_id() ) ) {\r\n$file = $packing_slip-&gt;get_path();\r\n$nl = $nl+1;\r\nif ($shipment-&gt;has_label()) {\r\n$label = $shipment-&gt;get_label();\r\n$file = $label-&gt;get_file();\r\n$nd = $nd+1;\r\n}\r\n}\r\n}\r\n\r\nif ($nr &gt; 0 &amp;&amp; $nl &gt; 0 &amp;&amp; $nd &gt; 0)\r\n{\r\n\/\/ The key slug defined for your action button\r\n$action_slug = 'printit';\r\n\r\n$order_id = method_exists( $order, 'get_id' ) ? $order-&gt;get_id() : $order-&gt;id;\r\n\r\n\/\/ Set the action button\r\n$actions[$action_slug] = array(\r\n'url' =&gt; wp_nonce_url( admin_url( 'admin-ajax.php?action=print_to_printer&amp;order_id=' . $order_id ) ),\r\n'name' =&gt; __( 'Drucken', 'woocommerce' ),\r\n'action' =&gt; $action_slug,\r\n);\r\n}\r\n}\r\nreturn $actions;\r\n}\r\n\r\n\/\/ Set Here the WooCommerce icon for your action button\r\nadd_action( 'admin_head', 'add_print_button_css' );\r\nfunction add_print_button_css() {\r\n$action_slug = \"printit\"; \/\/ The key slug defined for your action button\r\n\r\necho '&lt;style&gt;.wc-action-button-'.$action_slug.'::after { font-family: woocommerce !important; content: \"\\e01a\" !important; }&lt;\/style&gt;';\r\n}\r\n\r\nadd_action( 'wp_ajax_print_to_printer', 'print_to_printer');\r\nfunction print_to_printer() {\r\n$order_id = $_REQUEST['order_id'];\r\necho 'Order id: ' . $order_id . '&lt;br&gt;';\r\n\r\n$order = wc_get_order($order_id);\r\n\r\n\/\/Rechnungen:\r\n$invoices = wc_gzdp_get_invoices_by_order( $order );\r\n\r\nforeach( $invoices as $invoice ) {\r\n$file = $invoice-&gt;get_path();\r\necho $file . '&lt;br&gt;';\r\nshell_exec('cp ' . $file . ' \/data\/print\/');\r\n}\r\n\r\n\/\/Lieferscheine:\r\n\/\/ Get packing slips by shipment\r\n$shipments = wc_gzd_get_shipments_by_order( $order );\r\n\r\nforeach( $shipments as $shipment ) {\r\nif ( $packing_slip = wc_gzdp_get_packing_slip_by_shipment( $shipment-&gt;get_id() ) ) {\r\n$file = $packing_slip-&gt;get_path();\r\necho $file . '&lt;br&gt;';\r\nshell_exec('cp ' . $file . ' \/data\/print\/');\r\n\r\nif ($shipment-&gt;has_label()) {\r\n$label = $shipment-&gt;get_label();\r\n$file = $label-&gt;get_file();\r\necho $file . '&lt;br&gt;';\r\nshell_exec('cp ' . $file . ' \/data\/print\/');\r\n}\r\n}\r\n}\r\nshell_exec('\/data\/print\/print.sh');\r\n$order-&gt;update_status('completed', 'printed to printer');\r\nreturn wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&amp;status=completed&amp;order_id=' . $order_id));\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Vendidero &#8211; Germanized Pro &#8211; direktes Drucken aller Belege aus dem Backend Meine Implementierung mit direktem Drucken ist sehr begehrt, daher ver\u00f6ffentliche ich Sie hiermit \/\/ Add your custom order status action button (for orders with &#8220;processing&#8221; status) add_filter( &#8216;woocommerce_admin_order_actions&#8217;, &#8216;add_custom_order_status_actions_button&#8217;, 100, 2 ); function add_custom_order_status_actions_button( $actions, $order ) { \/\/ Display the button for [&#8230;]\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-22864","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/opensprinklershop.de\/en\/wp-json\/wp\/v2\/pages\/22864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensprinklershop.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/opensprinklershop.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/opensprinklershop.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/opensprinklershop.de\/en\/wp-json\/wp\/v2\/comments?post=22864"}],"version-history":[{"count":0,"href":"https:\/\/opensprinklershop.de\/en\/wp-json\/wp\/v2\/pages\/22864\/revisions"}],"wp:attachment":[{"href":"https:\/\/opensprinklershop.de\/en\/wp-json\/wp\/v2\/media?parent=22864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}