Ошибка статуса заказа в WooCommerce

Я пытаюсь создать Gateway Plugin для своей учетной записи Merchant, но я застрял.

Когда я пытаюсь идентифицировать эхо, я получаю это сообщение об ошибке.

notifiy response:'<br />
<b>Catchable fatal error</b>:  Object of class WC_Order could not be converted to string in <b>/wp-content/plugins/wing/index_wc.php</b> on line <b>213</b><br />

если не эхо-идентификатор заказа, я получил это сообщение.

[info] [application] notifiy response:'IPN Processed OK. Payment Successfully! tstatus OK!'

Вот мой код

/**
* Verify a successful Payment!
**/
function check_wingpay_response( $posted ){
global $woocommerce;

//$data = file_get_contents("php://input");

if( $data = file_get_contents("php://input"))
{
$data = file_get_contents("php://input");
$json=json_decode($data,true);

if($json['tstatus'] == '200')
{
$transaction_id = $json['tid'];
$trans_account  = $json['account'];
$order_id       = $json['merchant_ref'];
$order_id       = (int) $order_id;

$order          = new WC_Order($order_id);
$order_total    = $order->get_total();

//update_post_meta( $order_id, '_wc_paymentwing_transaction_id', wc_clean( $data ) );

$amount_paid    = $json['amount'];

//echo $order .': Order ID <br/>';
//echo $order_id .': merchant_ref <br/>';
//echo $amount_paid .': amount paid <br/>';

//after payment hook
do_action('wc_wingpay_after_payment', $json);

// check if the amount paid is equal to the order amount.
if($order_total != $amount_paid) {
//Update the order status
$order->update_status('on-hold', '');

//Error Note
$message = 'Thank you for shopping with us.<br />Your payment transaction was successful, but the amount paid is not the same as the total order amount.<br />Your order is currently on-hold.<br />Kindly contact us for more information regarding your order and payment status.';
$message_type = 'notice';

//Add Customer Order Note
$order->add_order_note($message.'<br />Wing Transaction ID: '.$transaction_id, 1);

//Add Admin Order Note
$order->add_order_note('Look into this order. <br />This order is currently on hold.<br />Reason: Amount paid is less than the total order amount.<br />Amount Paid was &#8358; '.$amount_paid.' while the total order amount is &#8358; '.$order_total.'<br />Wing Transaction ID: '.$transaction_id);

// Reduce stock levels
$order->reduce_order_stock();
// Empty cart
$woocommerce->cart->empty_cart();
} else {
/* start processing state */
if($order->status == 'processing'){
$order->add_order_note('Payment Via Wing<br />Transaction ID: '.$transaction_id);

//Add customer order note
$order->add_order_note('Payment Received.<br />Your order is currently being processed.<br />We will be shipping your order to you soon.<br />Wing Transaction ID: '.$transaction_id, 1);

// Reduce stock levels
$order->reduce_order_stock();

// Empty cart
WC()->cart->empty_cart();

$message = 'Thank you for shopping with us.<br />Your transaction was successful, payment was received.<br />Your order is currently being processed.';
$message_type = 'success';
} else {
if( $order->has_downloadable_item() ){
//Update order status
$order->update_status( 'completed', 'Payment received, your order is now complete.' );

//Add admin order note
$order->add_order_note('Payment Via Wing Payment Gateway<br />Transaction ID: '.$transaction_id);

//Add customer order note
$order->add_order_note('Payment Received.<br />Your order is now complete.<br />Wing Transaction ID: '.$transaction_id, 1);

$message = 'Thank you for shopping with us.<br />Your transaction was successful, payment was received.<br />Your order is now complete.';
$message_type = 'success';
} else {
//Update order status
$order->update_status( 'processing', 'Payment received, your order is currently being processed.' );

//Add admin order noote
$order->add_order_note('Payment Via Wing Payment Gateway<br />Transaction ID: '.$transaction_id);

//Add customer order note
$order->add_order_note('Payment Received.<br />Your order is currently being processed.<br />We will be shipping your order to you soon.<br />Wing Transaction ID: '.$transaction_id, 1);

$message = 'Thank you for shopping with us.<br />Your transaction was successful, payment was received.<br />Your order is currently being processed.';
$message_type = 'success';
}
// Reduce stock levels
$order->reduce_order_stock();

// Empty cart
WC()->cart->empty_cart();
}
}

$wingpay_message = array(
'message'   => $message,
'message_type' => $message_type
);

if ( version_compare( WOOCOMMERCE_VERSION, "2.2" ) >= 0 ) {
add_post_meta( $order_id, '_transaction_id', $transaction_id, true );
}

update_post_meta( $order_id, '_wc_wingpay_message', $wingpay_message );

die( 'IPN Processed OK. Payment Successfully! tstatus OK!' );

} //end tstaus == 200
else
{
$message =  'Thank you for shopping with us. <br />However, the transaction wasn\'t successful, payment wasn\'t recieved.';
$message_type = 'error';

$transaction_id = $json['tid'];

//Add Customer Order Note
$order->add_order_note($message.'<br />Wing Transaction ID: '.$transaction_id, 1);

//Add Admin Order Note
$order->add_order_note($message.'<br />Wing Transaction ID: '.$transaction_id);//Update the order status
$order->update_status('failed', '');

$wingpay_message = array(
'message'   => $message,
'message_type' => $message_type
);

update_post_meta( $order_id, '_wc_wingpay_message', $wingpay_message );

die( 'IPN Processed OK! tstatus Failed!' );
}
}
else
{
$message =  'Thank you for shopping with us. <br />However, the transaction wasn\'t successful, payment wasn\'t recieved.';
$message_type = 'error';

$wingpay_message = array(
'message'   => $message,
'message_type' => $message_type
);

update_post_meta( $order_id, '_wc_wingpay_message', $wingpay_message );

die( 'IPN Processed OK! No Json data!' );
}

}

Я не знаю, что мой код не так. Я могу зайти на сторонний платежный веб-сайт и получить заказ в бэкэнде, но после того, как я оформил заказ, верните эту страницу с непонятным «спасибо сообщение» (Спасибо. Ваш заказ был получен.).

но не меняйте «статус заказа» и никогда не показывайте «add_order_note» & «сообщение» в конце. а затем не показывать мое благодарственное сообщение и не уменьшать заказ.

Надеюсь, вы можете помочь мне !!!!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]