GithubHelp home page GithubHelp logo

ceske-sluzby's People

Contributors

lukasprelovsky avatar marian-kadanka avatar pavelevap avatar vyskoczilova avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ceske-sluzby's Issues

Doprava zdarma - výber dopravcu pres OPTION a pod..

Myšlienka : Aby zákazník mohol vybrať typ dopravcu, ak má nárok na dopravu zdarma.

Vo všeobecnosti Woo Eshopy majú dopravu zdarma, ale neponúkajú typ doručenia. Príklad Poštou, kuriérom alebo uloženkou...

Doplnit možnost zadávat dobu doručení a EAN u produktů

Kód převzat z jiného požadavku: #19

<?php
/** Přidá dobu doručení a EAN k produktu */

// Display Fields
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields_nt' );

// Save Fields
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save_nt' );

function woo_add_custom_general_fields_nt() {

global $woocommerce, $post;
// Text Field
woocommerce_wp_text_input(
array(
'id' => 'ean',
'label' => __( 'EAN', 'woocommerce' ),
'placeholder' => 'Zadejte EAN',
'desc_tip' => 'true',
'description' => __( 'Zadejte EAN produktu.', 'woocommerce' )
)
);
woocommerce_wp_text_input(
array(
'id' => 'delivery_date',
'label' => __( 'Doručení', 'woocommerce' ),
'placeholder' => 'Zadejte doručení',
'desc_tip' => 'true',
'description' => __( 'Zadejte doručení produktu.', 'woocommerce' )
)
);
}
function woo_add_custom_general_fields_save_nt( $post_id ){

// Textarea
$woocommerce_ean = $_POST['ean'];
if( !empty( $woocommerce_ean ) )
update_post_meta( $post_id, 'ean', esc_html( $woocommerce_ean ) );

// Textarea
$woocommerce_delivery_date = $_POST['delivery_date'];
if( !empty( $woocommerce_delivery_date ) )
update_post_meta( $post_id, 'delivery_date', esc_html( $woocommerce_delivery_date ) );

}

/** Zobrazí dobu doručení v detailu produktu */
add_action( 'woocommerce_single_product_summary', 'doruceni_detail', 5 );
function doruceni_detail() {
    global $product;
    // Do not show this on variable products
    /*if ( $product->product_type <> 'variable' )*/ {
        $dd = get_post_meta( $product->id, 'delivery_date', true );
        if ($dd == 0)
         {$dd = 'Skladem';}
         elseif
         ($dd <= 7)
         {$dd = 'Do týdne';}
         elseif
         ($dd <= 14)
         {$dd = '1 - 2 týdny';}
         elseif
         ($dd <= 21)
         {$dd = '2 - 3 týdny';}
         elseif
         ($dd <= 28)
         {$dd = '2 - 4 týdny';}
         elseif
         ($dd <= 35)
         {$dd = '3 - 5 týdnů';}
         elseif
         ($dd <= 42)
         {$dd = '4 - 6 týdnů';}
         elseif
         ($dd >= 56)
         {$dd = '4 - 7 týdnů';}

        echo '<div class="woocommerce_dd">';
        echo '<span class="delivery--date">' . $dd . '</span><br />';
        /** DOPRAVA ZDARMA */
         $rp = $product->get_price();
         if ($rp >= 10000)
         {echo '<span class="doprava--zdarma">DOPRAVA ZDARMA !!!</span>';}
          echo '</div>';
    }
}

// Optional: To show on archive pages
add_action( 'woocommerce_after_shop_loop_item_title', 'doruceni_detail' );
/** */
remove_filter('woocommerce_cart_item_remove_link', 'woocommerce_cart_item_remove_link');

/**
* Přidá štítek DOPRAVA ZDARMA na stránku s produkty
*/
add_action( 'woocommerce_before_shop_loop_item_title', 'sticky_doprava_zdarma', 10 );

function sticky_doprava_zdarma ()
{
 global $product;
 $sdz = $product->get_price();
         if ($sdz >= 10000)
         {echo '<div class="sdz"><span class="sticky-doprava-zdarma">DOPRAVA ZDARMA</span></div>';}
 }


/**
* Přidá krátký popisek zboží a dobu doručení, které se zobrazí v katalogu nad názvem zboží
*/
add_action('add_meta_boxes', 'product_title_desc_box');
add_action('save_post', 'product_title_desc_save', 1, 2);

function product_title_desc_box(){
    add_meta_box('product_title_desc_box', 'Krátký popisek', 'product_title_desc_form', 'product','side', 'core');
    wp_nonce_field( basename( __FILE__ ), 'smashing_post_class_nonce' );
}
function product_title_desc_form($post){
    wp_nonce_field( basename( __FILE__ ), 'product_title_description_nonce' );
    $title_description = get_post_meta($post->ID, 'title-description', true);
    ?> <p><label for="title-description">Zadejte krátký popisek produktu, který se zobrazí nad nadpisem produktu v katalogu</label>
        <br />
        <input type="text" name="title-description" id="title-description1" value="<?php echo $title_description ; ?>"/>
    </p>
    <?php
}

function product_title_desc_save($post_id, $post ){
    if(!isset( $_POST['title-description']) || !wp_verify_nonce($_POST['product_title_description_nonce'], basename(__FILE__)))
                {
        return $post_id;
                }
                 $post_type = get_post_type_object( $post->post_type );

    /* Check if the current user has permission to edit the post. */
    if ( !current_user_can( $post_type->cap->edit_post, $post_id ) )
        return $post_id;

                $description = $_POST['title-description'] ;
                 update_post_meta( $post_id, 'title-description', $description);

}

add_action( 'woocommerce_before_shop_loop_item_title', 'my_add_short_description', 9 );
function my_add_short_description()
{
global $product;
     {
        $td = get_post_meta( $product->id, 'title-description', true );

        echo '<div class="woocommerce_td">';
        echo '<span class="title-description">' . substr($td, 0, 80) . '<br /></span>'; // Omezí počet znaků výpisu echo na 80 znaků
        echo '</div>';
    }
}

Bude třeba zjistit, co to přesně dělá...

Heureka - certifikát spokojenosti

Implementace widgetu by měla být velmi jednoduchá.

V nastavení bude pouze možnost vlevo/vpravo + hodnota posunutí shora. Použit musí být také API klíč pro měření konverzí.

Uloženka - prověřit funkčnost HTTPS

Eshop je napojený na cloudflare s SSL flexibile. Plugin běží pokud stránka není pod HTTPS, kdy se zobrazí logo a výběr poboček, ale při HTTPS se nezobrazí logo a ani výběr poboček. Tuším tedy že bude problém s HTTPS.

DPD ParcelShop a Suhosin

Nastavení DPD ParcelShop způsobuje problémy u uživatelů, kteří mají aktivní rozšíření Suhosin (např. Active24).

Obvykle tam mají následující omezení:
suhosin.post.max_name_length = 64
Délka indexu odesílané hodnoty tedy nesmí být větší než 64 znaků.

Bohužel nastavení proměnné pro DPD ParcelShop má 68 znaků (jako jediné nastavení): woocommerce_ceske_sluzby_dpd_parcelshop_dpd_parcelshop_zakladni-cena
A tak není zadaná hodnota odesílána (a ukládána).

Zbytečně se nám tam v názvu duplikuje dpd_parcelshop, ale nemohu to jen tak odebrat, protože už to má mnoho set webů nastaveno (a uloženo v databázi) v této podobě... Bude to chtít nějaké řešení, kde bude nastavení automaticky migrováno (např. po aktualizaci pluginu)...

XML feedy - podpora dopravce a ceny dopravy (+ možnost zdarma)

DELIVERY_ID
DELIVERY_PRICE
DELIVERY_PRICE_COD

Ideálně asi nějak automaticky generovat informace o dopravě na základě aktivních možností dopravy?

U některých produktů (např. podle výše ceny) by měla být podporována doprava zdarma.
Patrně souvislost s bodem #17.

Doprava: DPD ParcelShop

U DPD ParcelShop se nezapočítává DPH na dopravu.
Upravil jsem zakomentovaním v class-ceske-sluzby-dpd-parcelshop.php na řádku 29.

//'calc_tax' => 'per_item'

XML feedy a WP Super Cache

Pokud někdo používá jednoduše generované feedy a zapne WP Super Cache, tak to může začít způsobovat problémy.

XML feedy - umožnit změnu názvu produktu určenou pro porovnávače

Pro produkty a jejich varianty bychom měli umožnit změnu názvu.

Napriklad Heureka mi nepridala produkt s názvom Parrot Flower Power.

Ale po zmene na Parrot Flower Power Hnedý už produkt bez problémov pridali. A ja nechcem mať na stránke to hnedý.

Pri niektorých produktoch napríklad na stránek nechcem mať značku v názve atď.

ďakujem za ochotu

Patrně by se daly použít elementy PRODUCT a PRODUCTNAME? Nebo to s tím nesouvisí?

Woocommerce Currency Switcher, Pay for Payment a České služby

Při použití více měn s pluginem Woocommerce Currency Switcher je problém, že plugin použitý v Českých službách Pay for Payment přidané poplatky nezahrnuje. Což ve výsledku znamená, že pokud mám například zvolenou měnu Euro - produkty OK, doprava OK, ale polatek za dobírku se nepřepočítá, jen se změní z Kč na Euro. A poplatek za dobírku 30 Euro je celkem hodně.

Níže je dočasné řešení:
V souboru woocommerce-payforpayment.php řádek 190 - 195 nahradit kódem

$this->_fee = (object) array(
                            'fee_title' => $fee_title,
                            'cost' => $cost = apply_filters('woocs_exchange_value', $cost),
                            'taxable' => $taxable,
                            'tax_class' => $tax_class,
                        );

Důležitý je řádek

'cost' => $cost = apply_filters('woocs_exchange_value', $cost),

kde jsem použil filtr woocs_exchange_value

Proto prosím o integrci přímo do českých služeb, hlavně kvůli následným aktualizacím pluginu Pay4Payment.

XML feedy - vyřazení produktu, nebo kategorie z feedu (WPML)

Čas od času je nutné některé produkty vyřadit z feedu.
Nyní potřebuji vyřadit z feedu veškeré produkty v en + jednu kategorii (WPML)
Nenapadá Vás nějaké rychlé řešení? Něco jako

if (product_id= array (1,2,3,4,) ) {
kód
}
else (product_category id= array (1,2,3,4)) {
kód
}

Pro později by bylo dobré přidat k produktu checkbox, který po zatržení vyřadí produkt z feedu.
To samé i u kategorie produktu.

Dashboard widget

Protože uživatelé špatně hledají a neví kde naleznou adresy feedů (nehledě k tomu, že někteří shopadmini nemají přístup do nastavení wc) přikládám snippet na widget na nástěnku.

/** Feedy dashboard widget */
function feeds_dashboard_widget() {
    $url_heureka = site_url('?feed=heureka');
    $url_zbozi = site_url('?feed=zbozi');
    $url_pricemania = content_url('pricemania.xml');
    $dirsd = get_stylesheet_directory_uri();
    echo "
    <table style='width:100%;'><tbody>
    <tr>
    <td style='width:50%;'><img style='margin-top:10px;' src='{$dirsd}/images/Heureka.png' />    </td>
    <td style='width:50%'><h3>Feed pro Heureka.cz najdete <a href='$url_heureka'>zde.</a></h3>   </td>
    </tr>
    <tr>
    <td colspan='2'>$url_heureka    </td>
    </tr>
    <tr>
    <td style='width:50%;'><img style='margin-top:10px;' src='{$dirsd}/images/Zbozi.png' />    </td>
    <td style='width:50%'><h3>Feed pro Zbozi.cz najdete <a href='$url_zbozi'>zde.</a></h3>   </td>
    </tr>
    <tr>
    <td colspan='2'>$url_zbozi    </td>
    </tr>
    <tr>
    <td style='width:50%;'><img style='margin-top:10px;' src='{$dirsd}/images/Pricemania.png' />    </td>
    <td style='width:50%'><h3>Feed pro Pricemania.cz najdete <a href='$url_pricemania'>zde.</a></h3>   </td>
    </tr>
    <tr>
    <td colspan='2'>$url_pricemania    </td>
    </tr>
    </tbody></table>";

}
function add_feeds_dashboard_widget() {
  wp_add_dashboard_widget('feeds_dashboard_widget', 'Adresy feedů', 'feeds_dashboard_widget');
}
add_action('wp_dashboard_setup', 'add_feeds_dashboard_widget');

Samnozřejmě pro plugin je nutné změnit cestu k image a nahrát loga (šířka loga 160px)
feedy
heureka
zbozi
pricemania

.

Woocommerce Email Attachment

Pridanie Woocommerce Email Attachment ktoré bolo odsúhlasené autorom.

https://github.com/mikaelz/wp-plugin/tree/master/woocommerce-email-attachment

Jedná sa o plugin ktorý umožní pridať 2 lubovolné prílohy napríklad 2 pdf súbory k emailu ktorý sa odosiela po objednávke.
Viac info:

Adds 2 attachments to processing email.
Due law change http://blog.riesenia.com/fotak-na-dovolenku-zadarmo-alebo-nove-pravidla-pre-e-shopy/ it
is needed to send 2 forms with the order (http://www.nakupujbezpecne.sk/docs/form/odstupenie%20od%20zmluvy.pdf, http://www.nakupujbezpecne.sk/docs/form/reklamacia.pdf).
Law info available at http://nakupujbezpecne.sk/docs/zakony/102_2014.pdf

Podmíněné zobrazení platebních možností

Nebylo by na škodu přidat do Českých služeb podmíněné zobrazení platebních možností v závislosti na typu dopravy.
Kousek kódu přikládám, stačí jen přidat nějaké admin rozhraní.

function nt_relevantni_platebni_metody ($available_gateways) {
global $woocommerce;
$packages = $woocommerce->shipping->get_packages();

foreach ( $packages as $i => $package ) {
    $chosen_method = isset( $woocommerce->session->chosen_shipping_methods[ $i ] ) ?

        $woocommerce->session->chosen_shipping_methods[ $i ] :  '';

    // pokud je aktivováno doručení  (id doručení)
    if ('nt_shipping1' == $chosen_method) {
    // zakážeme platební metodu
        unset($available_gateways['bacs']);
    }

    // pokud je aktivováno doručení  (id doručení)
    else if ('nt_shipping2' == $chosen_method) {
    // zakážeme platební metodu
        unset($available_gateways['cod']);
    break;
    }
}
return $available_gateways;}
add_filter('woocommerce_available_payment_gateways','nt_relevantni_platebni_metody');

Je to z důvodu, pokud někdo využívá Table Rate Shipping, nebo nějaké další způsoby dopravy většinou nemá možnost jak omezit platby.
Příklad z TRS:
Třída - Česká pošta na dobírku (Musíme omezit jen platbu COD)
Třída - Česká pošta platba na účet (Musíme omezit jen na platbu BACS)

Já sám využívám vlastní shipping methods, které by se také časem mohli přidat do České služby.

Geis Point a Balík Na poštu

Nebylo by na škodu zavést podporu i pro Geis Point a Balík Na poštu.

Nyní se snažím zprovoznit výběr poboček Zásilkovny, ale nějak se mi nedaří. Pokud se mi to ale povede, tak se zkusím podívat na ten Geis Point, protože ten bych využil i já ve svém shopu.

Heureka XML - Možnost vyloučení některých kategorií

Dobrý den,

našel jsem Váš výše uvedený plugin a zkusil jsem jej mimo jiné pro vytvoření feedu z mého Woocommerce eshopu do Heureky. Bohužel mi přišla zpět odpověď z Heureky, že ve feedu se mi objevují i služby mé firmy (např. školení), které Heureka neumí (nebo nechce) zpracovat. Existuje nějaký jednoduchý způsob, jak určité produkty nebo kategorie produktů z feedů odstranit ? Možná by se to hodilo i ostatním uživatelům…

Doprava: PPL ParcelShop

https://wordpress.org/support/topic/ppl-parcelshop

  1. Varianta
    Pro začátek by to stačilo udělat jednoduše, stejně jak to máte pro DPD Parcelshop.
    Nejlepší by bylo přidat položky PPL dobírka (klasické doručení PPL) a položku PPL Parcelshop - výběr ze select boxu stejně jako u DPD. Přidat rovněž doručení na Slovensko a možnost volby jiné ceny doručení. Další dobrou informací by bylo do objednávky uložit/poslat i kód dané pobočky vč. základních údajů o pobočce. Pod selectbox by bylo dobré doplnit informaci např. Pobočku si můžete vybrat na mapě s odkazem na tu mapu parcelshopu (nofollow odkaz do nového okna/záložky).
    Je třeba myslet na aktualizaci dat o pobočkách, dotahovat je z jejich api.

  2. Varianta
    Lepší varianta by byla následující, podobně by se mohla udělat i pro DPD Parcelshop.

Výběr pobočky pomocí autocomplete, po vybrání vypsat informace o pobočce vč. otevírací doby apod (např. jak to mají oni na webu) pod dané pole. Zbytek stejný jako v 1. variantě.

V budoucnu by to šlo ještě vylepšit o mapu, nejbližší pobočku (kdyby chodily souřadnice o pobočkách nebo podle adresy zjistit přes google API souřadnice).. apod. Ale do toho se vám určitě chtít nebude
Navíc komerční využití google map stojí 9 tis. EUR ročně, ale vím jen o málokom, kdo to platí.

XML feedy - jak na vyprodané produkty aneb DELIVERY_DATE (Heureka)

http://sluzby.heureka.cz/napoveda/xml-feed/#DELIVERY_DATE

V současné chvíli, když není produkt skladem, tak se DELIVERY_DATE ve feedu nezobrazuje.

Citace z manuálu: Toto označení se využívá pouze pro případy, kdy je produkt nově uveden na trh a je prodejný až od určitého data, za předpokladu, že lze učinit předobjednávky. V případě, že jsou produkty dlouhodobě nedostupné a není známa ani přibližná doba dodání, pak nesmí být tyto produkty v XML souboru uváděny.

Takže by tam mělo být asi DELIVERY_DATE uvedeno, ale s prázdnou hodnotou?

A produkty, které už nebudou skladem (ale majitel eshopu je nechává na webu kvůli SEO a návštěvnosti) by se asi vůbec neměly ve feedu zobrazovat?

Nápady? Nemáte s tím někdo zkušenosti?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.