• tomaaszq

    (@tomaaszq)


    Hejka.

    Wordpress 4.9.8, to co chcę zrobić, to update informacji w profilu zalogowanego aktualnie użytkownika. O to, co aktualnie napisałem i jaki mam problem:

    Jesteśmy poza wp-admin, aczkolwiek zalogowani na swoje konto w serwisie. Mam formularz w którym wpisujemy dane. Na submit leci ajaxowo przekazywanie danych z formularza i uruchomienie osobnego skryptu PHP:

    $("#save-data").click(function(){
    			var user_id = $("#user_id").val();
    			var place = $("#place").val();
    			var city = $("#city").val();
    			var age = $("#age").val();
    			var sex = $("#sex").val();
    
    			var dataToSend = 'user_id='+user_id+'&place='+place+'&city='+city+'&age='+age+'&sex='+sex;
    
                $.ajax({
                    type: 'POST',
                    url: '../public_html/wp-content/themes/singlepage/my-script.php',
                    data: dataToSend,
                    success: function(data) {
                        $("#response").text(data);
    
                    }
                });
       		});

    Następnie w moim my-script.php odbieram sobie te dane i dla porządku przypisuję do zmiennych, i ich przekazywanie jest poprawne (wyrzuciłem sobie je na ekran i widzę, że wszystko jest OK). Chciałbym w tym miejscu, aby zaktualizować dane w profilu tegoż użytkownika. Mój kod wygląda tak:

    <?php
    	$user_id=$_POST['user_id'];
    	$place=$_POST['place'];
    	$city=$_POST['city'];
    	$age=$_POST['age'];
    	$sex=$_POST['sex'];
    
    	update_user_meta( $user_id, 'place', $place );
            update_user_meta( $user_id, 'city', $city );
            update_user_meta( $user_id, 'age', $age );
            update_user_meta( $user_id, 'sex', $sex );
      
    	/*  dziala  */
    	echo $user_id . $place . $city . $age . $sex;
    ?>

    Niestety, leci mi pięćseta. Skoro przekazane dane są ok, w panelu te pola już wcześniej sobie dodałem i bez problemu można je uzupełniać i dane zapisują się do bazy, to jaki tutaj jest problem?
    Z góry dzięki!

Zobacz 1 odpowiedź (z 1 wszystkich)
  • Moderator Paweł Knapek

    (@adpawl)

    ślesz do samodzielnego pliku, który nie ma żadnego związku z WP – poza tym, ze znajduje się w katalogu motywu ….nie może więc korzystać z WordPressowych funkcji, w tym update_user_meta.

    Zasadniczo cała implementacja kuleje. Lepiej było by użyć ajaxa z WP, czyli z wykorzystaniem admin-ajax.php
    Zerknij np. https://premium.wpmudev.org/blog/using-ajax-with-wordpress/ itp.

Zobacz 1 odpowiedź (z 1 wszystkich)

Temat ‘update_user_meta zwraca error 500’ jest zamknięty na nowe odpowiedzi.