首页 > 解决方案 > 如何使用“woocommerce_subscription_renewal_payment_complete”钩子插入订阅续订订单的数据

问题描述

我的数据库中有一个自定义表,我需要在订阅续订付款时使用钩子“woocommerce_subscription_renewal_payment_complete”将 product_id、user_id 和订单信息插入该表。有可能以这种方式实施吗?或者任何人都知道同样的其他想法?

我检查了下面的代码,它没有插入到表格中

function data_woocommerce_renewal( $subscription, $last_order ) {

if ( ! $subscription )
    return;
    
$order_id = $subscription->get_parent_id();
$order = wc_get_order( $order_id );
$user_id = $subscription->get_user_id();

$order_items = $subscription->get_items();

// Loop through order items
foreach ( $order_items as $item_id => $item ) {
    // To get the subscription variable product ID and simple subscription  product ID
    $product_id[] = $item->get_product_id();
}

// if( 'completed' === $order->get_status() ) {       
    
    $user_details = array(
        'token' => 'ygfvygrffburb',
        'true_or_false' => TRUE,
        'product_id' => $product_id[0],
        'customer_id' => $user_id
    );
    
    data_insert_test_data($user_details);
    
// }
}
add_action( 'woocommerce_subscription_renewal_payment_complete', 'data_woocommerce_renewal', 10, 1 );

下面的插入函数

//insert test data
function data_insert_test_data($user_details) {

    global $wpdb;
    $table_name = $wpdb->prefix . "test_data";
    $result = $wpdb->insert($table_name, $user_details);


    if ($result) {
        return true;
    } else {
        return false;
    }
}

标签: phpdatabasewoocommercehookwoocommerce-subscriptions

解决方案


推荐阅读