这与WooCommerce和产品供应商扩展有关。
在我的功能中,每次提交重力表单时,我都会创建新的分类术语(产品供应商),但是我还想要填充其他自定义字段。
以下有效更新术语名称和slug。我正在尝试更新PayPal电子邮件,供应商徽标等字段。
对于此测试,我手动设置下面的变量。
$user = 'formname';
$email = 'example@gmail.com';
$description = 'this is a test';
$return = wp_insert_term(
$user, // the term
'wcpv_product_vendors', // the taxonomy
array(
'description'=> $description,
'slug' => $user,
)
);
// Update vendor data
$vendor_data['paypal_email'] = $email; // The email used for the account will be used for the payments
$vendor_data['commission'] = '50'; // The commission is 50% for each order
update_option( 'shop_vendor_' . $return['term_id'], $vendor_data );
// Update vendor data
$vendor_data['paypal_email'] = $email; // The email used for the account will be used for the payments
$vendor_data['commission'] = '50'; // The commission is 50% for each order
$vendor_data['admins'][] = $customer_id; // The registered account is also the admin of the vendor
update_option( 'shop_vendor_' . $return['term_id'], $vendor_data );
该功能在提交表单时运行,它只是不将数据添加到供应商分类字段中。
完整代码
//Woocommerce - ETSY - Import
function create_vendor_form( $entry, $form ) {
//////////////////////////////////////////////////////////////////////////// GET DATA FROM API
$user = rgar( $entry, '1' );
$email = rgar( $entry, '2' );
$description = rgar( $entry, '3' );
$return = wp_insert_term(
$user, // the term
'wcpv_product_vendors', // the taxonomy
array(
'description'=> $description,
'slug' => $user,
)
);
// Update vendor data
$vendor_data['paypal_email'] = $email; // The email used for the account will be used for the payments
$vendor_data['commission'] = '50'; // The commission is 50% for each order
$vendor_data['admins'][] = $customer_id; // The registered account is also the admin of the vendor
update_option( 'shop_vendor_' . $return['term_id'], $vendor_data );
////////////////////////////////////////////////////////// end GET DATA FROM API
}
add_action( 'gform_after_submission_2', 'create_vendor_form', 10, 2 );
答案 0 :(得分:2)
首先将数据添加到$ vendor_data数组,然后使用以下代码应用它:
//Add the data to the array
$vendor_data['paypal'] = $email;
$vendor_data['profile'] = $description;
//Update the term meta with the above values.
update_term_meta($return['term_id'], 'vendor_data', $vendor_data);