我正在分享3个屏幕,一步一步将通过woocommerce。我有一个商店的页面。在选择产品时,我将转到用于创建帖子的前端表单。创建帖子后,我将转到结帐页面。
我的问题是,我可以在woocommerce平台上获得中间的表单(用于创建帖子的前端表单)吗?
请看我的共享屏幕,以便更好地理解它。
谢谢
第一个屏幕

第二个屏幕

第三个屏幕

发布于 2018-06-04 08:45:36
我的问题是,我可以在woocommerce平台上获得中间的表单(用于创建帖子的前端表单)吗?
当然可以,但您必须将步骤2中的数据保存在当前会话(购物车)中。仅当创建订单时,收集会话数据并创建(custom_post_type)职位发布。您不希望在订单完成/支付之前创建职位发布。
你的问题很笼统,所以你可以得到一个类似的答案。我们不会在这里构建完整的插件。您将需要使用多个钩子来完成此操作。
编辑:更多信息
@步骤2,收集、清理和验证表单值。我会将这些数据保存在购物车会话中。如下所示:
// I don't know how and where you collect the step 2 data,
// so i can't provide a hook for this function.
function step_2_data_to_session() {
global $woocommerce;
$step_two_data = array();
// validate and sanitize data first
// save data to woocommerce session
$woocommerce->session->set('step_two_data', $step_two_data );
}然后,当用户支付并创建订单时,使用钩子收集会话数据并将其保存到您的客户帖子类型。
add_action('woocommerce_checkout_update_order_meta', 'new_order', 10, 2)
function new_order($order_id, $data) {
global $woocommerce;
// At this point the order is created and the session data is still alive.
if(! is_admin() ) {
$step_two_data = $woocommerce->session->get('step_two_data');
if($step_two_data) {
$args = array(
'post_author' => get_current_user_id(),
'post_title' => 'The Job title here',
'post_type' => 'job',
'post_status' => 'publish'
);
$new_job_post_id = wp_insert_post($args);
if($new_job_post_id) {
// Job post is saved now..
// Now you'll probably want to add step_two_data as meta data to the post.
}
}
}
}注意:我还没有测试这段代码,错误处理没有包括在内,等等。这只是一个在创建订单时如何保存会话数据的指针。
您还需要做更多的工作,例如,我看到工作列表有一个设定的截止日期。我会使用cron-job每天检查哪些工作必须删除,使用相同的cron我还会通知客户他们的工作帖子‘将在2天内删除’等等;-)
致敬,Bjorn
https://stackoverflow.com/questions/50670377
复制相似问题