Wsparcie » Zaawansowane » Problem z wywołaniem funkcji php z pliku FatalError

  • Rozwiązano andro1d_pl

    (@andro1d_pl)


    Witam,
    Opisze bieżącą sytuacje, w panelu edycji użytkownika mam przycisk który jest podpięty pod AJAXa, gdy się w niego kliknie, wywoływana jest funkcja z określonego pliku(zależy mi na tym by funkcja wykonywała się tylko i wyłącznie po kliknięciu w button), gdy jest w tej funkcji zwykłe 'echo’ bądź jakieś obliczenia, wtedy bezproblemowo to się wykonuje.

    Gdy mój kod delete_user_meta znajduje się na tej stronie co cały przycisk, działa to bezproblemowo po zaktualizowaniu profilu, tzn zawsze się wykonuje mimo iż nie nacisnąłem żadnego przycisku, ale działa poprawnie, robi to co chce.

    Natomiast gdy umieszczam funkcje delete_user_meta pod plikiem który czyta AJAX wyrzuca mi różne komunikaty, w zależności jak próbuję to zrobić:
    Fatal error: Call to undefined function add_action() in /ścieżka do pliku/
    Fatal error: Call to undefined function current_user_can() in /ścieżka do pliku/

    Próbowałem(może to źle robię) pobierać zmienne globalne, lecz nadal nic z tego.

    Jak można to zrobić ale tak by kod php wykonywał się tylko w momencie naciśnięcia przycisku?

Viewing 7 replies - 1 through 7 (of 7 total)
  • Co do pliku, to jeżeli kod masz w zupełnie oddzielnym pliku ….to oczywistą oczywistością jest, że z jego poziomu nie wywołasz żadnych wordpressowych funkcji – bo niby jakim cudem?
    Jeżeli chcesz, by taki pliczek korzystał z WP, musisz mu na początku dołączyć wp-blog-header.php

    Co do przycisku, to po prostu korzystasz z akcji – onclick, czy click w przypadku jQuery.

    Thread Starter andro1d_pl

    (@andro1d_pl)

    Własnie chce zrobić na zasadzie onclick, ale nadal mi to nie działa, po przeładowaniu, wysłaniu formularza, funkcje które mają się cztać po kliknięciu i tak wykonywane.

    Co do „wp-blog-header.php” gdy go wrzuce do mojego pliku, wtedy będzie rozpoznawał te zmienne?

    Thread Starter andro1d_pl

    (@andro1d_pl)

    Spróbowałem to wrzucić na początku pliku ale
    Warning: require(./wp-blog-header.php) [function.require]: failed to open stream: Nie ma takiego pliku ani katalogu in

    Co do przycisku, to nic a nic cię nie rozumiem niestety.
    Może wstukaj w google np. wordpress ajax onclick, poczytaj pooglądaj, wyciągnij wnioski. Bo trudno zgadywać co i jak robisz i dlaczego ci nie działa.

    wp-blog-header.php jest w katalogu głównym wordpressa. Ścieżkę musisz podać względem lokalizacji swojego pliku.

    Thread Starter andro1d_pl

    (@andro1d_pl)

    Jest zalogowany użytkownik, załóżmy redaktor, przechodzi on w edycje swojego profilu, tam na samym dole ma dodaną możliwość dodawania zdjęć, gdy już wrzuci zdjęcie, zaktualizuje profil, to zdjęcie mu się wyświetli, a teraz potrzebuję zrobić przycisk(cokolwiek) i po wciśnięciu tego przycisku aktualizuje się profil i usuwa mu to jedno zdjęcie które wybrał, bądź coś na zasadzie checklisty, zaznacza, że chce usunąć to, to i to zdjęcie, klika aktualizuj profil i zostają usunięte te zdjęcia które wybrał. Mówiąc zdjęcia mam na myśli rekordy w bazie danych w których jest zapisana informacja o lokalizacji zdjęcia.

    No i? Przecież to można z poziomu samego WP obsłużyć, nie potrzeba wywalać kodu do oddzielnego pliku.
    Najpierw wypadało by poczytać na temat obsługi samego ajaxa w WP
    http://codex.wordpress.org/AJAX
    http://codex.wordpress.org/AJAX_in_Plugins
    itd.

    Do tego wprowadzenia po PL:
    http://dev.wpzlecenia.pl/2013/12/ajax-i-wordpress-wprowadzenie/
    http://blog.piotrszarmach.com/jak-uzywac-ajaxa-w-wordpressie/
    itd.

    Tutaj masz jakiś prosty przykładzik.
    http://wordpress.stackexchange.com/questions/115693/delete-post-meta-by-ajax

    Thread Starter andro1d_pl

    (@andro1d_pl)

    Dzięki wielkie, trochę nad tym posiedziałem ale już działa prawidłowo 😉

Viewing 7 replies - 1 through 7 (of 7 total)
  • Temat ‘Problem z wywołaniem funkcji php z pliku FatalError’ jest zamknięty na nowe odpowiedzi.