Итак, у меня есть эта страница редактирования заказа, которая позволяет моему клиенту повторно редактировать заказ. Проблема заключается в том, что плата PayPal, которую я установил, не будет обновляться с общей суммой товара, и я пытался включить общую сумму заказа в поля nonce, а затем редактировать их при изменении с помощью Javascript, однако, когда я добавляю поле и сохраняю его, я получаю вызов неопределенный метод WC_Order_Item_Fee::set_subtotal() ошибка.
PHP:
<?php
$order = wc_get_order( absint( $_REQUEST['id'] ) );
$paypal_fee = 0;
foreach( $order->get_items('fee') as $item_id => $item_fee ){
$fee_name = $item_fee->get_name();
if ($fee_name == 'Paypal Fee') {
// The fee total amount
$fee_total = $item_fee->get_total();
// // The fee total tax amount
// $fee_total_tax = $item_fee->get_total_tax();
$paypal_fee = $fee_total;
}
}
$price = $order->get_item_total( $item );
?>
HTML:
<form id="wcpv-vendor-order-detail" method="POST">
<input type="hidden" name="id" value="<?php echo $id; ?>" />
<input type="hidden" name="item_id" value="<?php echo $item_id; ?>" />
<input type="hidden" name="page" value="wcpv-vendor-order" />
<input type="hidden" name="action" value="confirmed_edit_item" />
<?php wp_nonce_field( 'website-confirmed-edit-item', '_wpnonce' ); ?>
<p>
<table>
<tr>
<th>
<label for="price"><?php echo $product_name; ?></label>
</th>
<td>
<input type="text" class="wc_input_price" id="price" name="price" value="<?php echo $price; ?>" />
<input type="text" class="wc_input_fee" id="fee" name="fee" value="<?php echo $paypal_fee; ?>" />
</td>
</tr>
</table>
</p>
<?php submit_button( __( 'Save new price', 'website' ), 'delete' ); ?>
</form>
Я попытался использовать Auto добавить или обновить пользовательскую комиссию с помощью административного редактирования заказов в WooCommerce код ответа в моем functions.php, надеясь, что она сработает, когда кто-либо нажмет цену редактирования. Но это все еще не работает.
WC_Order_Item_Fee
несуществующего методаset_subtotal()
, поскольку мы не видим этого в предоставленном вами коде. Обратите внимание, что вопрос должен быть обновлен, чтобы включить желаемое поведение, конкретную проблему или ошибку, и кратчайший код, необходимый для воспроизведения проблемы. Предоставленный вами код не является тестируемый, см. Как создать минимальный воспроизводимый пример… - person LoicTheAztec   schedule 15.01.2021woocommerce_order_after_calculate_totals
из моего кода ответа, вместо этого попробуйте использовать код внутри функции, который показывает, как установить или обновить плату за заказ. - person LoicTheAztec   schedule 15.01.2021