Snippets

Martin Urbánek České oslovení pro WordPress a WooCommerce - snippety

Created by Martin Urbánek last modified
<?php
/**
*    Ukázky použití filtrů
*/

/**
*    osloveni_email_text - nahrazení textu v e-mailech
*    osloveni_email_format - formát oslovení v e-mailech, string ve tvaru 111, viz dokumentace
*    osloveni_dashboard_text - nahrazení textu na nástěnce účtu WooCommerce
*    osloveni_dashboard_format - formát oslovení na nástěnce, string ve tvaru 111, viz dokumentace
*    %s - je zastupná značka naformátovaného oslovení v 5. pádě. Vkládá se hned za slovo, mezera je součástí prefixu.
*    
*    Podmínkou lze přiřadit různý text do různých e-mailů. U custom e-mailů je potřeba zjistit si jejich id buď z dokumentace, nebo z kódu.
*    
*    Základní možné $email_id:
*    - customer_new_account - Zákazník - nový účet
*    - customer_on_hold_order - Zákazník - čeká na vyřízení
*    - customer_processing_order - Zákazník - zpracovává se
*    - customer_completed_order - Zákazník - dokončená objednávka
*    - customer_invoice - Zákazník - faktura
*    - customer_note - Zákazník - poznámka
*    - customer_refunded_order - Zákazník - vrácená objednávka
*    - customer_reset_password - Zákazník - reset hesla
*
*/
add_filter('osloveni_email_text', 'osloveni_email', 10,2);
function osloveni_email($string, $email_id){
    if($email_id == 'customer_new_account'){
        $string = 'Zdravíčko%s';
    }
    if($email_id == 'customer_on_hold_order'){
        $string = 'Ahoj%s';
    }
  return $string;
}
add_filter('osloveni_email_format', 'osloveni_email_format', 10,2);
function osloveni_email_format($string, $email_id){
    if($email_id == 'customer_new_account'){
        $string = '111';
    }
  return $string;
}
<?php
/**
*    České oslovení - snippet pro Kadence WooCommerce Email Designer
*    
*    Kód vložte do functions.php ve vaší šabloně nebo pluginu.
*
*/

add_action('kadence_woomail_designer_email_details', 'ceske_osloveni_kadence', 10, 4 );
function ceske_osloveni_kadence($order, $sent_to_admin, $plain_text, $email){
  $options      = get_option('wp_ceske_osloveni_options');
  $format_filter = apply_filters('osloveni_email_format','', $email->id );
  $format_jmena = !empty($format_filter) ? $format_filter : CP_Osloveni_Helpers::get_format($options['format_jmena']);
  $prefix_meta   = $options['prefix_meta'] ?? '_billing_';
  $osloveni_text = apply_filters('osloveni_email_text','Dobrý den%s,', $email->id );
  if($email->id === 'customer_reset_password'){
    $user_data = get_user_by( 'id', $email->user_id );
    $osloveni  = get_user_meta( $email->user_id, 'osloveni', true );
    ?>
      <p><?php printf( esc_html( $osloveni_text ), esc_html( do_shortcode( "[osloveni jmeno='{$user_data->user_firstname}' prijmeni='{$user_data->user_lastname}' osloveni='{$osloveni}' format='{$format_jmena}' prefix_meta='{$prefix_meta}']")) ); ?></p>
      <?php 
    } else {
    ?>
      <p><?php printf( esc_html( $osloveni_text ), esc_html( do_shortcode( "[osloveni format='{$format_jmena}' prefix_meta='{$prefix_meta}' order_id='{$order->get_id()}']")) ); ?></p>
      <?php 
    }      
}

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.