Как я могу сохранить значение пользовательского поля в user_meta wordpress после его изменения с помощью javascript?

Я использую плагин для создания полей в user_meta внутри базы данных WordPress. Чтобы создать страницу, я сначала создал шаблон. Затем я запросил значение полей с помощью функции плагина:

<?php $pc = rp_user_data_func("pc","1"); ?>

Затем я использовал javascript для преобразования переменной PHP в javascript.

<script type="text/javascript"> var pc = <?php echo $pc; ?>;</script>

И, наконец, использовал переменную pc в нескольких функциях javascript, которые изменят значение переменной.

Теперь мне нужно обновить настраиваемое поле и сохранить новое значение в базе данных WordPress, как только пользователь нажмет кнопку «Сохранить».

Есть ли специальный способ сделать это в WordPress? Это упрощенная версия кода:

<?php
    $pc = rp_user_data_func("pc","1");
    if ( empty($pc) ) $pc = '0';

    if (isset($_POST['submit']))
    {
        myfnc();
        }
        function myfnc()
        {
            $user_id = 1;
            add_user_meta( $user_id , $pc , $pp , false );
        }
        ?>
<html>
    <head>
        <script type="text/javascript">
    var pc = <?php echo $pc; ?>;

    function pc_add () {
            pc = pc + 1;
            alert(pc);
        }
        function pc_sub () {
            pc = pc - 1;
            alert(pc);
        }
        </script>
        <style> 
            .square_add{
                width: 100px;
                height: 100px;
                Background-color: green;
                float: left;
            }
            .square_sub{
                width: 100px;
                height: 100px;
                Background-color: red;
                float: left;
            }
        </style>
        </head>
        <body>
            <div class="square_add" onclick="pc_add();">ADD</div>
            <div class="square_sub" onclick="pc_sub();">SUB</div>
            <form action="." method="post">
            <input type="submit" name="submit" value="submit">              
        </form>
        </body>
</html>

Вот страница с этим работающим кодом (изменение переменной, но без сохранения): http://www.anastorm.ihostfull.com/teste/


person Ana Storm    schedule 17.07.2018    source источник
comment
Покажите нам свой код решения формы и объясните, что не сработало.   -  person Jeroen Heier    schedule 17.07.2018
comment
Обновлен вопрос с кодом, чтобы его было легче увидеть.   -  person Ana Storm    schedule 17.07.2018


Ответы (1)


Только что получил помощь.

Вот рабочий код, если у кого-то такая же проблема:

<?php 
$pc = rp_user_data_func("pc", "1");
if (empty($pc))
    $pc = '0';

function myfnc($pc2) {
$user_id = 1;
update_user_meta($user_id, 'pc', $pc2);
$pct = rp_user_data_func("pc", "1");
unset($_POST);
}

if (isset($_POST['submit']) && !empty($_POST['pc'])) {
myfnc($_POST['pc']);
}
?>
<html>
<head>
    <script type="text/javascript">
        var pc = <?php echo $pc; ?>;

        function pc_add() {
            pc = pc + 1;
            alert(pc);
            document.getElementById('pc').setAttribute('value',pc);
        }
        function pc_sub() {
            pc = pc - 1;
            alert(pc);
            document.getElementById('pc').setAttribute('value',pc);
        }
    </script>
    <style> 
        .square_add{ width: 100px; height: 100px; Background-color: green; float: left;}
        .square_sub{ width: 100px; height: 100px; Background-color: red; float: left;}
    </style>
</head>
<body>
    <div class="square_add" onclick="pc_add();">ADD</div>
    <div class="square_sub" onclick="pc_sub();">SUB</div>
    <form action="." method="post">
        <input type="hidden" name="pc" id="pc" value="" />
        <input type="submit" name="submit" value="submit">          
    </form>
</body>

person Ana Storm    schedule 17.07.2018