Как вызвать форму div в почтовую функцию PHP?

#php #wordpress

Вопрос:

У меня проблема, мне нужна помощь.

Я получил форму пользовательского заказа в wordpress и хочу указать общую цену на function.php.

Вот общая цена с помощью скрипта для расчета любого шоу на «0», поэтому я хочу получить это число (Общая цена) в function.php $сообщение .= «Итого — $Общая ценаn»;

 <div name="totalPrice" id="totalPrice" class="totalPrice">0</div>
 

Вот код по адресу function.php

 function submit_form() {
if(isset($_POST['submit_form'])) {
    
    $str = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
    //echo $str;

    $gender = $_POST['gender'];
    $name = $_POST['username'];
    $phone = $_POST['phone'];
    $email = $_POST['email'];
    $deliverydate = $_POST['deliverydate'];
    $deliverytime = $_POST['deliverytime'];
    $payment = $_POST['payment'];
    $address1 = $_POST['address1'];
    $address2 = $_POST['address2'];

    $item_ids = json_decode(stripslashes($_POST['submit_form']));
    $itemid = $_POST['itemid'];
    $qty = $_POST['qty'];
    $item_names = [];        
    $items = "Item - Qtyn";

    foreach($item_ids as $item) {            
        foreach($item as $k => $i) {
            $item_names[$k] = $i;
        }
    }

    foreach($itemid as $k => $itm) {            
        if(isset($item_names[$itm])) {
            $items .= $item_names[$itm] .' - '. $qty[$k]."n"; 
        }           
    }
    

    
    $message = "";
    $message .= "Order No  - $strn";
    $message .= "Name  - $gender $namen";
    $message .= "Phone  - $phonen";
    $message .= "Email  - $emailn";
    $message .= "Delivery Date  - $deliverydaten";
    $message .= "Delivery Time  - $deliverytimen";
    $message .= "Address  - $address1 $address2n";
    $message .= "Payment  - $paymentn";
    $message .= "-----------------------n";
    $message .= $items;
    $message .= "-----------------------n";
    $message .= "Total - $totalPricen";

    $admin_mail = 'email@gmail.com';
    $to = $email;
    $subject = "New Order";
    
        'Reply-To: ' . $email . "rn";*/

    // More headers
    $headers .= 'From: xxx@xxx.com '. "rn";
    $headers .= 'Reply-To:'. $email . "rn";
        
    }

    $sent = mail($admin_mail, $subject, $message, $headers);
        if($sent) {
            //echo "sent <br>";
        }//message sent!
        else  {
            //echo "failed";
        }//message wasn't sent


    $sent = mail($to, $subject, $message, $headers);
        if($sent) {
            //echo "sent <br>";
        }//message sent!
        else  {
            //echo "failed";
        }//message wasn't sent
 

}
add_action( «инициализация», «форма отправки» );

Комментарии:

1. div элементы не имеют name атрибута, и, тем не менее, добавление одного из них все равно не заставляет их вести себя как поля формы. Если вы хотите, чтобы это значение отправлялось с обычной отправкой формы, то сначала вам нужно вставить его в фактическое поле формы.

2. (И что любой пользователь может манипулировать значением, если вы позволите клиенту рассчитать и отправить его, я надеюсь, понятно?)

Ответ №1:

Элементы Div не имеют атрибута name. Вместо этого вы можете использовать скрытый ввод для каждого приза, чтобы извлечь из него значение.

 <input type="hidden" value="0"></input>
 

Не забудьте ввести входные данные в элемент формы, чтобы вы могли извлечь значение. Это выглядело бы примерно так:

 <form method="post" action="">
   <div name="totalPrice" id="totalPrice" class="totalPrice">0</div>
   <input type="hidden" value="0"></input>
   <!-- Some other Code -->
   .
   .

</form>
 

Комментарии:

1. Привет, спасибо за совет, но это все равно не сработает.