Forum Replies Created

Viewing 15 replies - 1 through 15 (of 20 total)
  • Thread Starter crosscriss

    (@crosscriss)

    Ma bitno da sam si uspio sredit to 🙂
    Hvala na pomoci u debuggiranju, to je bilo kljucno.

    Thread Starter crosscriss

    (@crosscriss)

    Nasao sa rijesenje koje meni funckionira.
    Napravio sam ove promjene u kodu:

    {
    add_action('woocommerce_email_order_details', [$this, 'sendApiRequestOnCheckout'], 15, 4);
    add_action('woocommerce_order_status_changed', [$this, 'sendApiRequestOnOrderCompleted'], 30, 3);
    }

    onaj hook sam zamjenio sa ‘woocommerce_order_status_changed’ jer taj hook ima $old_status i $new_status parametre. Dok woocommerce_order_status_completed se triggera odmah, kad se napravi zahtjev za promjenom statusa u completed, ali se moze dogoditi da se sam order jos nije izmjenio (njegov status u completed), sto je kod mene problem bio.

    I onda sam if provjeru samo prilagodio:

    if (!is_admin() || $old_status === $new_status || $new_status !== 'completed') {
        return;
    }

    i tu:

    if ($new_status === 'completed') {...}

    Definicija metode izgleda ovako sada:

    public function sendApiRequestOnOrderCompleted(int $orderId, $old_status, $new_status): void

    Sada sve radi normalno

    • This reply was modified 2 years, 4 months ago by crosscriss.
    • This reply was modified 2 years, 4 months ago by crosscriss.
    • This reply was modified 2 years, 4 months ago by crosscriss. Reason: code looked ugly
    Thread Starter crosscriss

    (@crosscriss)

    Moguce da se dogadja da se hook okine i onda metoda izvrti prije nego server izvrsi promjenu u completed.
    Ne znam sad tocno redoslijed, ali kad ja kliknem na Dovrseno, pokrene se nekoliko async stvari, i onda ova za solo api vjerojatno zavrsi prije nego se izvrsi promjena order statusa u completed

    • This reply was modified 2 years, 4 months ago by crosscriss.
    Thread Starter crosscriss

    (@crosscriss)

    [17-Jan-2024 14:07:48 UTC] processing

    Tu sam ga stavio:

    // Execute only if status is changed to completed!
    		$orderData = $order->get_data();
    		$orderStatus = $orderData['status'];
    
    		error_log(print_r($orderStatus, true));

    Cudno mi je da je processing, kad sam kliknuo na narudzbu i stavio na Zavrseno

    EDIT: Samo da napomenem, iz “U obradi” (processing) sam ju prebacio u Zavrseno. pa mi je cudno da je orderstatus stari, a ne novi u koji sam ju prebacio

    • This reply was modified 2 years, 4 months ago by crosscriss.
    • This reply was modified 2 years, 4 months ago by crosscriss.
    Thread Starter crosscriss

    (@crosscriss)

    Stavio sam 2 error loga.

    1. sam stavio odmah nakon definije metode:

    public function sendApiRequestOnOrderCompleted(int $orderId): void
    	{
    		error_log(print_r('FUNCTION COMPLETED AND REGISTERED!', true));
    ......

    2. sam stavio nakon if === ‘completed’

    if ($orderStatus === 'completed') {
    			error_log(print_r('IF COMPLETED AND REGISTERED!', true));

    1. se pojavio u logu, drugi nije.

    [17-Jan-2024 13:24:11 UTC] FUNCTION COMPLETED AND REGISTERED!
    Thread Starter crosscriss

    (@crosscriss)

    Evo ga:

    17-Jan-2024 13:09:59 UTC] REGISTERED!
    [17-Jan-2024 13:10:01 UTC] REGISTERED!
    [17-Jan-2024 13:10:01 UTC] REGISTERED!
    [17-Jan-2024 13:10:16 UTC] REGISTERED!
    [17-Jan-2024 13:10:26 UTC] REGISTERED!
    [17-Jan-2024 13:10:26 UTC] REGISTERED!

    Thread Starter crosscriss

    (@crosscriss)

    Jel to sprema log u debug.log file ili neki drugi?
    Idem odmah probat pa da znam gdje trazit.

    EDIT: Znam gdje gledat error_log.
    Ne znam samo jel bi se register trebao triggerat na pocetku odmah, cim saveam file, ili ako dode do pokretanja tog hooka.

    • This reply was modified 2 years, 4 months ago by crosscriss.
    Thread Starter crosscriss

    (@crosscriss)

    Stavio sam na promijenu statusa u completed.
    Nikako ne mogu skuzit sto ga je strgalo jer ja sam jedini dev na webu, i nisam nista mijenjao osim updateao redovno pluginove, dodao sam bio automatewoo jedino, ali kazem, izbrisao sam ga. Sad sam probao ponovno reinstalirat solo plugin, i dalje se ne triggera action.
    Kao da se nije ni registrirao uopce ovaj:
    add_action(‘woocommerce_order_status_completed’, [$this, ‘sendApiRequestOnOrderCompleted’], 30, 1);

    Thread Starter crosscriss

    (@crosscriss)

    Da, evo upravo sam ju instalirao, pa isao onda testirat.
    Stavio sam WP Crontrol, i jos neki cron manager plugin, cisto da imam 2 razlicita prikaza cron eventsa, i ni na jednom nema za solo cron event.

    Jel bi i on trebao ovako nekako izgledat?
    “action_scheduler_run_queue, pa onda next run datum i vrijeme, neki Action, i recurrence”

    EDIT: Mogu li ja mozda nekako rucno napravit novi cron event preko crontrola ili cron managera?

    • This reply was modified 2 years, 4 months ago by crosscriss.
    Thread Starter crosscriss

    (@crosscriss)

    Iskoristio sam ovo zimsko vrijeme i manji broj narudzbi da izbrisem automatewoo skroz i sve automatizacije koje sam bio slozio.
    Ponovno instaliram Woo Solo plugin, ali i dalje ne radi. A AutomateWoo je jedini plugin koji sam bio stavio nakon Soloa, ne znam uopce sto bi ga moglo i dalje onemogucavat da odradi sto treba. Proci cu jos jednom debug.log (wpcrontrol sam vec provjerio) ako ima nesto novo sad kad sam ovo maknuo, pa cu vidjet.

    Thread Starter crosscriss

    (@crosscriss)

    MIslim da ga AutomateWoo plugin lomi, samo moram backupat workflows koje sam slozio, da mogu deactivateat plugin bez da izgubim sve.

    Thread Starter crosscriss

    (@crosscriss)

    Da, na listi nema neki cron job ciji hook name je makeApiCall ili mu je Action to, znaci iz nekog razloga se pobrisao.

    Znaci sad bih ga trebao ponovno stavit u cron events

    Thread Starter crosscriss

    (@crosscriss)

    Kako bi se trebao zvati cron job od solo plugina?

    Pitam jer na popisu cron events u wp-crontrol pluginu ne vidim nista sto lici na Solo cron

    • This reply was modified 2 years, 7 months ago by crosscriss.
    Thread Starter crosscriss

    (@crosscriss)

    Imam sve postavke namjestene.
    Mozete mi samo reci gdje da pogledam cron job od Solo plugina, da vidim kosi li se sa jednim drugim pluginom na koji sumnjam da bi mogao biti problem

    Thread Starter crosscriss

    (@crosscriss)

    Gdje mogu pronaci tu opciju? za status ili checkout. Vidim da je vezana uz slanje pdf racuna emailom, sto je kod mene bilo iskljuceno do sada jer sam ih rucno slao, tako da to nisam dirao.

    cron provjerim standardno kao i ostale cron jobs ili neki drukciji nacin?

    EDIT: ukljucio sam slanje pdf racuna emailom, stavio kada je status promijenjen u completed, i email se nije poslao, te nema nista u debug.logu

    • This reply was modified 2 years, 7 months ago by crosscriss.
Viewing 15 replies - 1 through 15 (of 20 total)