Richard Polák logo

Pokud zákazník zvolí platbu převodem nebo z nějakého důvodu nedokončí platbu kartou a pokud tak neučiní ani po nějaké době, připomeneme mu, že má neuzavřenou objednávku.

Nejprve do Woocommerce -> Nastavení – > Obecná vložíme pole, kde si budeme moci nastavit po kolika dnech se připomínka odešle a kolikrát se to bude opakovat:

add_filter('woocommerce_get_settings_general', 'custom_reminder_email_settings', 10, 2);
function custom_reminder_email_settings($settings, $current_section) {
    if ($current_section == '') { // nebo 'email' pro sekci E-maily, případně specifickou sekci, kde to chceš zobrazit
        $settings[] = array(
            'title'    => __('Nastavení připomínek pro nezaplacené objednávky', 'text-domain'),
            'type'     => 'title',
            'desc'     => 'Zde můžete nastavit interval a počet opakování pro připomínky.',
            'id'       => 'custom_reminder_email_options'
        );

        $settings[] = array(
            'title'    => __('Interval připomenutí (dny)', 'text-domain'),
            'id'       => 'custom_reminder_interval',
            'type'     => 'number',
            'desc'     => __('Počet dnů po vytvoření objednávky, kdy bude zaslán první e-mail.', 'text-domain'),
            'default'  => '3',
            'desc_tip' => true,
        );

        $settings[] = array(
            'title'    => __('Počet opakování', 'text-domain'),
            'id'       => 'custom_reminder_repeats',
            'type'     => 'number',
            'desc'     => __('Kolikrát se e-mail pošle, pokud zůstane objednávka nezaplacená.', 'text-domain'),
            'default'  => '3',
            'desc_tip' => true,
        );

        $settings[] = array(
            'type' => 'sectionend',
            'id'   => 'custom_reminder_email_options'
        );
    }

    return $settings;
}

Dále musíme vytvořit CRON akci pro automatické odesílání těchto mailů:

// Nastaví vlastní cron událost
add_action('wp', 'schedule_custom_reminder_email');
function schedule_custom_reminder_email() {
    if (!wp_next_scheduled('custom_reminder_email_event')) {
        wp_schedule_event(time(), 'daily', 'custom_reminder_email_event');
    }
}

// Akce pro odeslání e-mailu
add_action('custom_reminder_email_event', 'send_reminder_email_for_unpaid_orders');

Dále chceme do mailu vložit QR kód pro platbu, takže ho vygenerujeme na základě částky z objednávky a platebních údajů nastavených ve Woocommerce:

// Funkce pro vytvoření URL QR kódu pro platbu
function generate_payment_qr_code_url($order) {
    $account_number = get_option('woocommerce_bacs_account_number'); // Číslo účtu z nastavení WooCommerce
    $bank_code = get_option('woocommerce_bacs_bank_code'); // Kód banky
    $amount = $order->get_total(); // Celková částka objednávky
    $variable_symbol = $order->get_id(); // ID objednávky jako variabilní symbol

    // Formátování QR platby (dle formátu ČR)
    $qr_data = "SPD*1.0*ACC:CZ${bank_code}${account_number}*AM:${amount}*CC:CZK*X-VS:${variable_symbol}";

    // Vytvoření URL pro QR kód pomocí Google Chart API
    $qr_code_url = 'https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl=' . urlencode($qr_data);

    return $qr_code_url;
}

Vlastní funkce odeslání mailu:

function send_reminder_email_for_unpaid_orders() {
    $interval = get_option('custom_reminder_interval', 3);
    $repeats = get_option('custom_reminder_repeats', 3);

    $args = array(
        'status' => 'pending',
        'date_created' => '<' . (time() - ($interval * 24 * 60 * 60)),
    );

    $orders = wc_get_orders($args);
    foreach ($orders as $order) {
        $order_id = $order->get_id();
        $reminder_count = get_post_meta($order_id, '_reminder_count', true);

        if (!$reminder_count) {
            $reminder_count = 0;
        }

        if ($reminder_count < $repeats) {
            $customer_email = $order->get_billing_email();
            $subject = 'Připomenutí nezaplacené objednávky #' . $order_id;
            $qr_code_url = generate_payment_qr_code_url($order);

            $message = 'Dobrý den, připomínáme Vám, že Vaše objednávka #' . $order_id . ' je stále nezaplacená.<br>';
            $message .= 'Celková částka: ' . wc_price($order->get_total()) . '<br>';
            $message .= 'Můžete využít QR kód pro rychlou platbu:<br>';
            $message .= '<img src="' . esc_url($qr_code_url) . '" alt="QR kód pro platbu" /><br>';
            $message .= 'Děkujeme za Vaši objednávku!';

            $headers = array('Content-Type: text/html; charset=UTF-8');
            wp_mail($customer_email, $subject, $message, $headers);
            
            update_post_meta($order_id, '_reminder_count', $reminder_count + 1);
        }
    }
}

Zrušení CRON akce, pokud už nebude potřeba:

function unschedule_custom_reminder_email() {
    $timestamp = wp_next_scheduled('custom_reminder_email_event');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'custom_reminder_email_event');
    }
}
register_deactivation_hook(__FILE__, 'unschedule_custom_reminder_email');

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

15 − 4 =

uděluji souhlas se zpracováním mých osobních údajů (jméno, e-mail) za účelem odpovědi na můj dotaz, zaslaný prostřednictvím kontaktního formuláře umístěného na webových stránkách správce.

 

Souhlas

Udělením tohoto souhlasu se zpracováním osobních údajů poskytujete souhlas k tomu, aby Richard Polák, Příčná 593, 330 08 Zruč-Senec (dále jako „správce“) zpracovávala Vaše osobní údaje poskytnuté na základě tohoto souhlasu dle dále uvedených podmínek.

 

Rozsah zpracování Vašich osobních údajů

Správce bude na základě tohoto souhlasu zpracovávat Vaše jméno a e-mail, a to za dále uvedeným účelem.

 

Účel zpracování Vašich osobních údajů

Správce bude Vaše osobní údaje poskytnuté na základě tohoto souhlasu zpracovávat za účelem evidence a zpracování odpovědi na položený dotaz, zaslaný prostřednictvím kontaktního formuláře umístěného na webových stránkách správce.

 

Právní základ zpracování osobních údajů

Právním základem zpracování je tento Váš souhlas. Vaše Osobní údaje jsou zpracovávány v souladu s Obecným nařízením o ochraně osobních údajů – Nařízením Evropského parlamentu a rady (EU) 2016/679 ze dne 27.4.2016 – (dále jako „GDPR“).

 

Doba, po níž budou Vaše osobní údaje zpracovávány

Správce bude Vaše osobní údaje zpracovávat po dobu nezbytně nutnou, maximálně však 5 let ode dne odeslání formuláře, pokud tento souhlas neodvoláte dříve.

 

Odvolání souhlasu se zpracováním osobních údajů

Tento Váš dobrovolně udělený souhlas se zpracováním osobních údajů můžete kdykoli bezplatně odvolat, a to prostřednictvím zaslání e-mailu na adresu: mail@richardpolak.cz
Odvoláním souhlasu není dotčena zákonnost zpracování vycházejícího ze souhlasu, který byl dán před jeho odvoláním.

 

Osoby s přístupem k Vaším osobním údajům

K Vašim osobním údajům bude mít přístup správce.

 

Kontaktní údaje správce

Správce můžete kontaktovat na e-mailu: mail@richardpolak.cz či písemně na adrese provozovny správce (Richard Polák, Příčná 593, 330 08 Zruč-Senec, Česká republika). Správce je oprávněn požadovat prokázání Vaší totožnosti za účelem zamezení přístupu neoprávněným osobám k Vašim osobním údajům.

 

Vaše práva související s ochranou Vašich osobních údajů

Máte právo kdykoliv odvolat svůj souhlas, opravit či doplnit osobní údaje, požadovat omezení zpracování, vznést námitku či stížnost proti zpracování osobních údajů, požadovat přenesení údajů, přístupu ke svým osobním údajům, být informován o porušení zabezpečení osobních údajů, výmazu a další práva stanovená v GDPR.

 

Právo podat stížnost u dozorového úřadu

Kdykoliv můžete podat stížnost týkající se zpracování Vašich osobních údajů nebo neplnění povinností správce plynoucích z GDPR k dozorovému úřadu – Úřad pro ochranu osobních údajů, se sídlem Pplk. Sochora 27, 170 00 Praha 7, www.uoou.cz.

 

Povinnost poskytnout osobní údaje. Následky neposkytnutí osobních údajů

Vaše osobní údaje poskytujete zcela dobrovolně. Nemáte žádnou povinnost je poskytnout. V případě, že Vaše osobní údaje neposkytnete, nehrozí Vám žádná sankce.

Skip to content