Lui*_*ino 11 wordpress orders woocommerce hook-woocommerce woocommerce-theming
在我的自定义插件中,我需要捕获每次订单状态从 变为 的情况,wc_on_hold因此wc_completed我尝试写下:
function so_status_completed( $order_id, $old_status, $new_status ) {
// if user is active , then get order amount and do all other personal calculations
global $wpdb;
$order = wc_get_order( $order_id );
//$payment_method = $order->get_payment_method(); //returns payment method bacs,cheque,cod etc
$user_id = $order->get_user_id();
$total = $order->get_total();
$order_data = $order->get_data();
//$order_total = $order->get_formatted_order_total();
$order_total = $order->get_total();
echo '<script>console.log("Debug Objects: Check order_total ' . $order_total. '");</script>';
}
add_action('woocommerce_order_payment_status_changed','so_status_completed',10,1);
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将订单测试从暂停更改为完成时,我无法在 Chrome 控制台上回显给我订单价格......也许使用 add_action 不是将侦听器置于该事件的正确方法?
另外,由于我就在这里,我正在使用 $order-get_total() ,我在网上搜索了它的功能,但没有找到深入的文档,所以我想问你该方法是否是免费检索订单金额的正确方法应用?
谢谢!干杯!!!
Ruv*_*vee 17
“每次订单状态从 变为 时我都需要
wc_on_hold捕获wc_completed”
您需要将您的挂钩更改为woocommerce_order_status_changed.
“我无法进入 Chrome 控制台,该控制台回显给我订单价格”
你不能在这个钩子中使用javascriptand console.log。您需要使用该die函数或该error_log函数将其记录到您的debug.log文件中。
die功能add_action('woocommerce_order_status_changed', 'so_status_completed', 10, 3);
function so_status_completed($order_id, $old_status, $new_status)
{
$order = wc_get_order($order_id);
//$order_total = $order->get_formatted_order_total();
$order_total = $order->get_total();
die($order_total);
}
Run Code Online (Sandbox Code Playgroud)
error_log功能add_action('woocommerce_order_status_changed', 'so_status_completed', 10, 3);
function so_status_completed($order_id, $old_status, $new_status)
{
$order = wc_get_order($order_id);
//$order_total = $order->get_formatted_order_total();
$order_total = $order->get_total();
error_log(print_r('order total: ' . $order_total, true));
}
Run Code Online (Sandbox Code Playgroud)
笔记:
wp-config.php文件中激活“调试”模式。因此,导航到您的wp-config.php文件并向其中添加以下行!define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Run Code Online (Sandbox Code Playgroud)
file_put_contents函数创建一个简单的记录器!add_action('woocommerce_order_status_changed', 'so_status_completed', 10, 3);
function so_status_completed($order_id, $old_status, $new_status)
{
$order = wc_get_order($order_id);
//$order_total = $order->get_formatted_order_total();
$order_total = $order->get_total();
// Simple logger
file_put_contents(dirname(__FILE__) . '/my_logger.txt', $order_total);
}
Run Code Online (Sandbox Code Playgroud)
"append"如果需要,您可以将模式与记录器一起使用!所以你的记录器文件不会被覆盖。
add_action('woocommerce_order_status_changed', 'so_status_completed', 10, 3);
function so_status_completed($order_id, $old_status, $new_status)
{
$order = wc_get_order($order_id);
//$order_total = $order->get_formatted_order_total();
$order_total = $order->get_total();
// Logger with "append" mode
file_put_contents(dirname(__FILE__) . '/my_logger.txt', $order_total, FILE_APPEND);
}
Run Code Online (Sandbox Code Playgroud)
“我刚来,想问一下,
$order-get_total()免手续费取订单金额是否合适?”
您可能需要查看$order->get_subtotal()运费、优惠券和税前的总计:
请参阅这些相关答案:
| 归档时间: |
|
| 查看次数: |
14635 次 |
| 最近记录: |