{"id":30070,"date":"2026-04-22T08:28:06","date_gmt":"2026-04-22T08:28:06","guid":{"rendered":"https:\/\/makemehappy.sk\/?p=30070"},"modified":"2026-04-22T08:32:51","modified_gmt":"2026-04-22T08:32:51","slug":"zopakovat-objednavku-woocommerce-shortcode","status":"publish","type":"post","link":"https:\/\/makemehappy.sk\/en\/zopakovat-objednavku-woocommerce-shortcode\/","title":{"rendered":"Form to repeat an order via shortcode"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Niekedy z\u00e1kazn\u00edk nepotrebuje preh\u013ead\u00e1va\u0165 cel\u00fd katal\u00f3g, aby si k\u00fapil to ist\u00e9 \u010do minule. Sta\u010d\u00ed mu \u010d\u00edslo predch\u00e1dzaj\u00facej objedn\u00e1vky a e-mail. Tento snippet vytvor\u00ed jednoduch\u00fd formul\u00e1r, ktor\u00fd po overen\u00ed \u00fadajov automaticky napln\u00ed ko\u0161\u00edk identick\u00fdmi produktmi a presmeruje z\u00e1kazn\u00edka k pokladni.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ako-to-funguje\">Ako to funguje?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tento k\u00f3d zaregistruje shortcode <code>[repeat_order_form]<\/code>, ktor\u00fd m\u00f4\u017eete vlo\u017ei\u0165 kamko\u013evek \u2013 do str\u00e1nky, pr\u00edspevku alebo do widgetu.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Formul\u00e1r:<\/strong> Zobraz\u00ed dve polia (E-mail a \u010c\u00edslo objedn\u00e1vky).<\/li>\n\n\n\n<li><strong>Overenie:<\/strong> Cez AJAX (bez obnovenia str\u00e1nky) skontroluje, \u010di objedn\u00e1vka s dan\u00fdm \u010d\u00edslom existuje a \u010di k nej prisl\u00facha zadan\u00fd e-mail.<\/li>\n\n\n\n<li><strong>Akcia:<\/strong> Ak \u00fadaje sedia, syst\u00e9m vypr\u00e1zdni aktu\u00e1lny ko\u0161\u00edk, prid\u00e1 do\u0148 polo\u017eky z p\u00f4vodnej objedn\u00e1vky a po\u0161le z\u00e1kazn\u00edka priamo do pokladne.<\/li>\n<\/ol>\n\n\n\n<div class=\"gspb_button_wrapper gspb_button-id-gsbp-139df22\" id=\"gspb_button-id-gsbp-139df22\"><a class=\"wp-block-greenshift-blocks-buttonbox gspb-buttonbox wp-element-button\" href=\"https:\/\/makemehappy.sk\/snippety\/\" target=\"_blank\" rel=\"noopener\"><span class=\"gspb-buttonbox-textwrap\"><span class=\"gspb-buttonbox-text\"><span class=\"gspb-buttonbox-title\">Ako prida\u0165 k\u00f3d<\/span><\/span><\/span><\/a><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7\">PHP<\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>function zopakovat_objednavku_formular() {\n    ob_start();\n    ?>\n    &lt;style>\n    #repeat-order-form .form-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      column-gap: 1rem;\n      row-gap: 0.5rem;\n      margin-bottom: 1.5rem;\n    }\n    #repeat-order-form .form-group {\n      display: flex;\n      flex-direction: column;\n    }\n    #repeat-order-form button {\n      margin-bottom: 0.5rem;\n    }\n    #repeat-order-form #response-message {\n      display: none;\n    }\n    &lt;\/style>\n\n    &lt;form id=\"repeat-order-form\">\n      &lt;div class=\"form-grid\">\n        &lt;div class=\"form-group\">\n          &lt;label for=\"email\">V\u00e1\u0161 e-mail:&lt;\/label>\n          &lt;input type=\"email\" name=\"email\" id=\"email\" required class=\"input-text\" \/>\n        &lt;\/div>\n\n        &lt;div class=\"form-group\">\n          &lt;label for=\"order_id\">\u010c\u00edslo objedn\u00e1vky:&lt;\/label>\n          &lt;input type=\"text\" name=\"order_id\" id=\"order_id\" required class=\"input-text\" \/>\n        &lt;\/div>\n      &lt;\/div>\n\n      &lt;button type=\"submit\" class=\"button alt\">Zopakova\u0165 objedn\u00e1vku&lt;\/button>\n      &lt;p id=\"response-message\" class=\"woocommerce-error\">&lt;\/p>\n    &lt;\/form>\n\n    &lt;script>\n    jQuery(document).ready(function($) {\n      $('#repeat-order-form').submit(function(e) {\n        e.preventDefault();\n\n        var email = $('#email').val();\n        var order_id = $('#order_id').val();\n\n        $.ajax({\n          type: \"POST\",\n          url: \"&lt;?php echo admin_url('admin-ajax.php'); ?>\",\n          data: {\n            action: \"repeat_order\",\n            email: email,\n            order_id: order_id\n          },\n          success: function(response) {\n            if (response.success) {\n              \/\/ Tu zme\u0148te URL na va\u0161u str\u00e1nku pokladne\/ko\u0161\u00edka\n              window.location.href = \"https:\/\/vasadomena.sk\/pokladna\/\";\n            } else {\n              $('#response-message')\n                .text(response.data)\n                .show();\n            }\n          }\n        });\n      });\n    });\n    &lt;\/script>\n    &lt;?php\n    return ob_get_clean();\n}\nadd_shortcode('repeat_order_form', 'zopakovat_objednavku_formular');\n\n\/\/ AJAX proces na pozad\u00ed\nfunction zopakovat_objednavku_ajax() {\n    if (!isset($_POST&#91;'email'&#93;) || !isset($_POST&#91;'order_id'&#93;)) {\n        wp_send_json_error(\"Neplatn\u00e9 \u00fadaje.\");\n    }\n\n    $email = sanitize_email($_POST&#91;'email'&#93;);\n    $order_id = intval($_POST&#91;'order_id'&#93;);\n    $order = wc_get_order($order_id);\n\n    if ($order &amp;&amp; $order->get_billing_email() === $email) {\n        WC()->cart->empty_cart(); \/\/ Vy\u010dist\u00edme ko\u0161\u00edk pred pridan\u00edm nov\u00fdch vec\u00ed\n\n        foreach ($order->get_items() as $item) {\n            WC()->cart->add_to_cart($item->get_product_id(), $item->get_quantity());\n        }\n\n        wp_send_json_success();\n    } else {\n        wp_send_json_error(\"Objedn\u00e1vka nebola n\u00e1jden\u00e1 alebo e-mail nesed\u00ed.\");\n    }\n}\nadd_action('wp_ajax_repeat_order', 'zopakovat_objednavku_ajax');\nadd_action('wp_ajax_nopriv_repeat_order', 'zopakovat_objednavku_ajax');<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">zopakovat_objednavku_formular<\/span><span style=\"color: #D4D4D4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">ob_start<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    ?&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    &lt;style&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">#repeat-order-form .form-grid {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      display: grid;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      grid-template-columns: <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">fr <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">fr;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      column-gap: <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">rem;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      row-gap: <\/span><span style=\"color: #B5CEA8\">0.5<\/span><span style=\"color: #D4D4D4\">rem;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      margin-bottom: <\/span><span style=\"color: #B5CEA8\">1.5<\/span><span style=\"color: #D4D4D4\">rem;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">#repeat-order-form .form-group {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      display: flex;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      flex-direction: column;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">#repeat-order-form button {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      margin-bottom: <\/span><span style=\"color: #B5CEA8\">0.5<\/span><span style=\"color: #D4D4D4\">rem;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">#repeat-order-form #response-message {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      display: none;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    &lt;\/style&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    &lt;form id=<\/span><span style=\"color: #CE9178\">&quot;repeat-order-form&quot;<\/span><span style=\"color: #D4D4D4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      &lt;div <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;form-grid&quot;<\/span><span style=\"color: #D4D4D4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        &lt;div <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;form-group&quot;<\/span><span style=\"color: #D4D4D4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          &lt;label <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;email&quot;<\/span><span style=\"color: #D4D4D4\">&gt;V\u00e1\u0161 e-mail:&lt;\/label&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          &lt;input type=<\/span><span style=\"color: #CE9178\">&quot;email&quot;<\/span><span style=\"color: #D4D4D4\"> name=<\/span><span style=\"color: #CE9178\">&quot;email&quot;<\/span><span style=\"color: #D4D4D4\"> id=<\/span><span style=\"color: #CE9178\">&quot;email&quot;<\/span><span style=\"color: #D4D4D4\"> required <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;input-text&quot;<\/span><span style=\"color: #D4D4D4\"> \/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        &lt;\/div&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        &lt;div <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;form-group&quot;<\/span><span style=\"color: #D4D4D4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          &lt;label <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;order_id&quot;<\/span><span style=\"color: #D4D4D4\">&gt;\u010c\u00edslo objedn\u00e1vky:&lt;\/label&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          &lt;input type=<\/span><span style=\"color: #CE9178\">&quot;text&quot;<\/span><span style=\"color: #D4D4D4\"> name=<\/span><span style=\"color: #CE9178\">&quot;order_id&quot;<\/span><span style=\"color: #D4D4D4\"> id=<\/span><span style=\"color: #CE9178\">&quot;order_id&quot;<\/span><span style=\"color: #D4D4D4\"> required <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;input-text&quot;<\/span><span style=\"color: #D4D4D4\"> \/&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        &lt;\/div&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      &lt;\/div&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      &lt;button type=<\/span><span style=\"color: #CE9178\">&quot;submit&quot;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;button alt&quot;<\/span><span style=\"color: #D4D4D4\">&gt;Zopakova\u0165 objedn\u00e1vku&lt;\/button&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      &lt;p id=<\/span><span style=\"color: #CE9178\">&quot;response-message&quot;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\">=<\/span><span style=\"color: #CE9178\">&quot;woocommerce-error&quot;<\/span><span style=\"color: #D4D4D4\">&gt;&lt;\/p&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    &lt;\/form&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    &lt;script&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">jQuery<\/span><span style=\"color: #D4D4D4\">(document)<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">ready<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\">($) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      $(<\/span><span style=\"color: #CE9178\">&#39;#repeat-order-form&#39;<\/span><span style=\"color: #D4D4D4\">)<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">submit<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\">(e) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        e<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">preventDefault<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> email = $(<\/span><span style=\"color: #CE9178\">&#39;#email&#39;<\/span><span style=\"color: #D4D4D4\">)<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">val<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> order_id = $(<\/span><span style=\"color: #CE9178\">&#39;#order_id&#39;<\/span><span style=\"color: #D4D4D4\">)<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">val<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        $<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">ajax<\/span><span style=\"color: #D4D4D4\">({<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          type: <\/span><span style=\"color: #CE9178\">&quot;POST&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          url: <\/span><span style=\"color: #CE9178\">&quot;&lt;?php echo admin_url(&#39;admin-ajax.php&#39;); ?&gt;&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          data: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            action: <\/span><span style=\"color: #CE9178\">&quot;repeat_order&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            email: email,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            order_id: order_id<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          success: <\/span><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\">(response) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (response<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #D4D4D4\">success) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">              <\/span><span style=\"color: #6A9955\">\/\/ Tu zme\u0148te URL na va\u0161u str\u00e1nku pokladne\/ko\u0161\u00edka<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">              window<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #D4D4D4\">location<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #D4D4D4\">href = <\/span><span style=\"color: #CE9178\">&quot;https:\/\/vasadomena.sk\/pokladna\/&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            } <\/span><span style=\"color: #C586C0\">else<\/span><span style=\"color: #D4D4D4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">              $(<\/span><span style=\"color: #CE9178\">&#39;#response-message&#39;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">text<\/span><span style=\"color: #D4D4D4\">(response<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #D4D4D4\">data)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">show<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">          }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        });<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      });<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    });<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    &lt;\/script&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    &lt;?php<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">ob_get_clean<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">add_shortcode<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;repeat_order_form&#39;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&#39;zopakovat_objednavku_formular&#39;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ AJAX proces na pozad\u00ed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">zopakovat_objednavku_ajax<\/span><span style=\"color: #D4D4D4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (!<\/span><span style=\"color: #DCDCAA\">isset<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$_POST<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #CE9178\">&#39;email&#39;<\/span><span style=\"color: #D4D4D4\">&#93;) || !<\/span><span style=\"color: #DCDCAA\">isset<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$_POST<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #CE9178\">&#39;order_id&#39;<\/span><span style=\"color: #D4D4D4\">&#93;)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">wp_send_json_error<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Neplatn\u00e9 \u00fadaje.&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">$email<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #DCDCAA\">sanitize_email<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$_POST<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #CE9178\">&#39;email&#39;<\/span><span style=\"color: #D4D4D4\">&#93;);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">$order_id<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #DCDCAA\">intval<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$_POST<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #CE9178\">&#39;order_id&#39;<\/span><span style=\"color: #D4D4D4\">&#93;);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">$order<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #DCDCAA\">wc_get_order<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$order_id<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">$order<\/span><span style=\"color: #D4D4D4\"> &amp;&amp; <\/span><span style=\"color: #9CDCFE\">$order<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">get_billing_email<\/span><span style=\"color: #D4D4D4\">() === <\/span><span style=\"color: #9CDCFE\">$email<\/span><span style=\"color: #D4D4D4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">WC<\/span><span style=\"color: #D4D4D4\">()-&gt;<\/span><span style=\"color: #9CDCFE\">cart<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">empty_cart<\/span><span style=\"color: #D4D4D4\">(); <\/span><span style=\"color: #6A9955\">\/\/ Vy\u010dist\u00edme ko\u0161\u00edk pred pridan\u00edm nov\u00fdch vec\u00ed<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">foreach<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">$order<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">get_items<\/span><span style=\"color: #D4D4D4\">() as <\/span><span style=\"color: #9CDCFE\">$item<\/span><span style=\"color: #D4D4D4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #DCDCAA\">WC<\/span><span style=\"color: #D4D4D4\">()-&gt;<\/span><span style=\"color: #9CDCFE\">cart<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">add_to_cart<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">$item<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">get_product_id<\/span><span style=\"color: #D4D4D4\">(), <\/span><span style=\"color: #9CDCFE\">$item<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">get_quantity<\/span><span style=\"color: #D4D4D4\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">wp_send_json_success<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    } <\/span><span style=\"color: #C586C0\">else<\/span><span style=\"color: #D4D4D4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">wp_send_json_error<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Objedn\u00e1vka nebola n\u00e1jden\u00e1 alebo e-mail nesed\u00ed.&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">add_action<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;wp_ajax_repeat_order&#39;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&#39;zopakovat_objednavku_ajax&#39;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">add_action<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;wp_ajax_nopriv_repeat_order&#39;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&#39;zopakovat_objednavku_ajax&#39;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"na-co-si-dat-pozor\">Na \u010do si da\u0165 pozor?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>URL adresa presmerovania (riadok 60):<\/strong> V skripte (riadok s <code>window.location.href<\/code>) je nastaven\u00e1 statick\u00e1 adresa. Pred nasaden\u00edm ju nezabudnite zmeni\u0165 na va\u0161u re\u00e1lnu adresu pokladne (checkout).<\/li>\n\n\n\n<li><strong>\u0160t\u00fdlovanie:<\/strong> Pridal som z\u00e1kladn\u00e9 CSS, aby polia boli ved\u013ea seba, ale snippet preber\u00e1 vizu\u00e1l va\u0161ej t\u00e9my (tla\u010didl\u00e1, fonty). Ak to nevyzer\u00e1 pod\u013ea va\u0161ich predst\u00e1v, CSS v hlavi\u010dke funkcie si upravte.<\/li>\n\n\n\n<li><strong>Bezpe\u010dnos\u0165:<\/strong> Snippet kontroluje zhodu e-mailu a ID objedn\u00e1vky. To br\u00e1ni tomu, aby niekto n\u00e1hodne &#8222;sk\u00fa\u0161al&#8220; \u010d\u00edsla objedn\u00e1vok a pozeral, \u010do v nich bolo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Niekedy z\u00e1kazn\u00edk nepotrebuje preh\u013ead\u00e1va\u0165 cel\u00fd katal\u00f3g, aby si k\u00fapil to ist\u00e9 \u010do minule. Sta\u010d\u00ed mu \u010d\u00edslo predch\u00e1dzaj\u00facej objedn\u00e1vky a e-mail. Tento snippet vytvor\u00ed jednoduch\u00fd formul\u00e1r, ktor\u00fd po overen\u00ed \u00fadajov automaticky napln\u00ed ko\u0161\u00edk identick\u00fdmi produktmi a presmeruje z\u00e1kazn\u00edka k pokladni. Ako to funguje? Tento k\u00f3d zaregistruje shortcode [repeat_order_form], ktor\u00fd m\u00f4\u017eete vlo\u017ei\u0165 kamko\u013evek \u2013 do str\u00e1nky, pr\u00edspevku [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":29535,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gspb_post_css":"#gspb_button-id-gsbp-139df22{display:flex;justify-content:flex-start}#gspb_button-id-gsbp-139df22 .gspb-buttonbox-text{display:flex;flex-direction:column}#gspb_button-id-gsbp-139df22>.gspb-buttonbox{box-sizing:border-box}","footnotes":""},"categories":[105],"tags":[],"class_list":["post-30070","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-snippet"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts\/30070","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/comments?post=30070"}],"version-history":[{"count":2,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts\/30070\/revisions"}],"predecessor-version":[{"id":30074,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/posts\/30070\/revisions\/30074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/media\/29535"}],"wp:attachment":[{"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/media?parent=30070"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/categories?post=30070"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/makemehappy.sk\/en\/wp-json\/wp\/v2\/tags?post=30070"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}