WP Manifestindependent plugin directory
manifest / ecommerce / odwp-acadp-lower_price

Pravidelné snižování cen

Jednoduchý plugin pro WordPress, který pravidelně snižuje cenu inzerátů vytvořeného pomocí pluginu Advanced Classifieds & Directory Pro.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/ondrejd/odwp-acadp-lower_price/archive/refs/heads/master.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Jednoduchý plugin pro WordPress, který pravidelně snižuje cenu inzerátů vytvořeného pomocí pluginu Advanced Classifieds & Directory Pro.

Upozornění

Plugin je vytvořen na míru webu Nepotrebujem.eu, takže je pravděpodobné, že jej pro vaše použití budete muset upravit. Pokud o něco takového máte zájem, můžete si to objednat i přímo od autora.

Plugin vyžaduje plugin Advanced Classifieds & Directory Pro - bez tohoto pluginu nainstalovaného nebudete moci aktivovat tento plugin.

Poznámka k implementaci

Plugin předpokládá, že produkty, které plugin ACADP vytváří, jsou rozšířené o hodnoty price_orig, price_reduce a price_reduce_days.

Popis pluginu

  • plugin pravidelně snižuje cenu u inzerátů vytvořených pomocí pluginu ACADP, které obsahují meta hodnoty price, price_orig, price_reduce a price_reduce_days,
  • plugin umožňuje nastavit, kdy bude příslušna úloha spuštěna (pro spouštění je využita funkce wp_cron,
  • plugin obsahuje přehledný výpis o provedených změnách cen,
  • plugin obsahuje přehledný výpis ACADP inzerátů z hlediska jejich ceny a jejích stavu a vývoje.

Snímky obrazovek

Nastavení pluginu

Nastavení pluginu

Ceny produktů

Přehled cen produktů

Instalace

Pro správnou funkčnost musíte upravit plugin Advanced Classifieds & Directory Pro takto:

Soubor public/class-acadp-public-user.php řádek 844

// [ondrejd] - pridani snizovani ceny
$price_reduce = (int) $_POST['price_reduce'];
update_post_meta( $post_id, 'price_reduce', $price_reduce );
$price_reduce_days = (int) $_POST['price_reduce_days'];
update_post_meta( $post_id, 'price_reduce_days', $price_reduce_days );
update_post_meta( $post_id, 'price_orig', $price );
// [ondrejd]

Soubor public/partials/user/acadp-public-edit-listing-display.php řádek 243

<!-- [ondrejd] - pridani snizovani ceny -->
<div class="row">
    <div class="col-md-4">
        <!-- Snizit cenu o: 1-50 % -->
        <div class="form-group">
            <label class="control-label" for="acadp-price_reduce"><?php _e( 'Snížit cenu o:', 'advanced-classifieds-and-directory-pro' ); ?></label>
            <div class="input-group">
                <input type="number" name="price_reduce" id="acadp-price_reduce" class="form-control" min="1" max="50" step="1" value="<?php echo ( isset( $post_meta['price_reduce'] ) ) ? esc_attr( $post_meta['price_reduce'][0] ) : esc_attr( '10' ); ?>" aria-describedby="acadp-price_reduce-addon">
                <span class="input-group-addon" id="acadp-price_reduce-addon"><?php _e( '%', 'advanced-classifieds-and-directory-pro' ); ?></span>
            </div>
        </div>
    </div>
    <div class="col-md-4">
        <!-- Po dobu: 1-30 dni -->
        <div class="form-group">
            <label class="control-label" for="acadp-price_reduce_days"><?php _e( 'Po dobu:', 'advanced-classifieds-and-directory-pro' ); ?></label>
            <div class="input-group">
                <input type="number" name="price_reduce_days" id="acadp-price_reduce_days" class="form-control" min="1" max="30" step="1" value="<?php echo ( isset( $post_meta['price_reduce_days'] ) ) ? esc_attr( $post_meta['price_reduce_days'][0] ) : esc_attr( '10' ); ?>" aria-describedby="acadp-price_reduce_days-addon">
                <span class="input-group-addon" id="acadp-price_reduce_days-addon"><?php _e( 'dní', 'advanced-classifieds-and-directory-pro' ); ?></span>
            </div>
        </div>
    </div>
    <div class="col-md-4"></div>
</div>
<!-- //[ondrejd] -->

TODO

Přehled počátečních úkolů k dokončení verze 1.0.0.

  • Základní struktura pluginu (včetně závislosti na wp i acadp)

  • Stránka s nastavením pluginu:

    • kdy se má spouštět skript na změnu cen
  • Stránka s přehledem všech acadp inzerátů a stavu a vývoje jejich cen

    • přidat podbarvení dle stavu vývoje ceny inzerátu
  • Samotná funkcionalita pro snižování cen (přes WP_Cron)

    • provést snížení cen
    • uvést čas tohoto posledního spuštění
    • uložit log o změnách (v závislosti na uživatelském nastavení)
  • Stránka s výpisem provedených změn cen

    • vytvořit tabulku odwpalp-log a zároveň i odpovídající třídu ALP_Log_DbTable.

      Tabulka bude mít tuto strukturu:

      Název sloupce Typ sloupce Defaultní hodnota Popis
      log_id bigint(20) --- Identifikátor záznamu
      created datetime NOW Datum vytvoření
      post_id biging(20) --- Identifikátor inzerátu
      price_orig int(10) --- Původní cena (před změnou)
      price_new int(10) --- Nová cena (po změně)
    • vytvořit třídu ALP_Log_Screen (dědice ALP_Screen_Prototype)

    • vytvořit třídu ALP_Log_Table (dědice WP_List_Table)

  • projít zdrojáky

    • kvůli kvalitě (správné názvy metod, odsazení atp.)
    • zapomenuté komentáře a TODO
    • ujistit se, že je možný překlad a vygenerovat adresář languages a přidat defaultní PO a POT soubory
    • smazat soubor TODO.md (nebo přesunout do souboru README.md)
    • dokončit soubor README.md a zároveň vytvořit zkrácenou anglickou verzi README.en.md
  • vypublikovat na GitHub první release (verze 1.0.0)

  • napsat příspěvek na ondrejd.com