php - 用户购买 WooCommerce 会员订阅后的 wp_insert_post
问题描述
一旦用户购买了 WooCommerce 会员订阅(用户角色“订阅者”),我正在尝试在我的自定义帖子类型“vipmembers”中创建一个新帖子。下面的代码只允许我在用户是客户时添加新帖子(即当用户注册时),但我希望仅在用户购买 WooCommerce 会员订阅产品时添加帖子(即当用户角色是订阅者时) .
任何帮助,将不胜感激。
add_action( 'user_register', 'membership_import', 10, 1 );
function membership_import( $user_id ) {
if($user_id){
$args = array(
'post_type' => 'vipmembers',
'meta_query' => array(
array(
'key' => 'user_id',
'value' => $user_id,
'compare' => '='
)
)
);
$users_exists = get_posts( $args );
$author_obj = get_user_by('id', $user_id);
$roles = $author_obj->roles;
$post = array(
'post_title' => wp_strip_all_tags($author_obj->user_login),
'post_status' => 'publish',
'post_type' => 'vipmembers'
);
if(empty($users_exists)){
$post_ID = wp_insert_post($post);
update_post_meta($post_ID, 'user_id',$user_id);
update_post_meta($post_ID, 'user_email',$author_obj->user_email);
}
}
}
解决方案
无论如何解决了,只是改变了
add_action( 'user_register', 'membership_import', 10, 1 );
function membership_import( $user_id ) {
和
add_action( 'woocommerce_thankyou', 'membership_import');
function membership_import( $order_id ) {
:)
推荐阅读
- sql - 如何在不同的列中显示多个查询?
- react-native - react native flatlist 对于动态项目和大数据来说很慢
- python - 如何从单张照片中获取 3D 表面上的轮廓区域?
- vue.js - 如何使用 v-for 通过解析列表来渲染不同的组件
- swift - 如何修复 Mapbox 标注中的垂直定位故障
- python - py3exiv2 在 CentOS 上安装
- directx - 如何使用 C 语言在 DirectX 11 中呈现文本
- java - 当一个函数使用另一个函数的返回数据时如何使用模拟?
- r - 如何使用 tidyeval 从传递给 UDF 的一个参数的值列表中获取特定值
- javascript - 未找到 NodeJS discord-rpc 应用程序