【问题标题】:Associate WP/WooCommerce user with CF7 form将 WP/WooCommerce 用户与 CF7 表单相关联
【发布时间】:2020-11-27 19:55:22
【问题描述】:

如果在 WP 的“会员区”中使用 CF7 表单,如果用户最初是通过 WooCommmerce 购买创建的,是否有办法关联谁提交表单?

我知道我们可以只要求他们的用户名作为表单的一部分,但我正在寻找一种更好的方法来解决这个问题,即表单会自动提取用户 ID。然后,我们将通过 webhook 推送表单提交,并根据表单响应在后端添加自动化。这只是我正在寻求帮助的第一部分,我还没有找到任何好的文章。

【问题讨论】:

标签: wordpress woocommerce contact-form-7


【解决方案1】:

WordPress 允许您使用函数get_current_user_id() 查询当前登录用户的给定请求/表单提交。但是,在 REST api/AJAX 调用期间不会保留登录的用户凭据。 CF7 使用 REST api 提交表单,因此无法使用此功能进行 CF7 表单提交。

你有两种方法可以解决这个问题,

.1。使用Smart Grid-layout extension,它修复了CF7插件的许多编码问题,其中之一是在表单提交时保留用户凭据,因此允许您使用上述功能,

add_action('wpcf7_before_send_mail', 'get_cf7_user');
function get_cf7_user($form){
  $user_id = get_current_user_id();
  switch($user_id){
    case 0: //no user logged in.
      break;
    default: //registered user ID.
      $user = wp_get_current_user(); //this is another fn which will get you the user object.
      break;
  }
}

.2。或者,您需要将当前用户的 ID 作为隐藏字段添加到表单中,以便在提交表单后检索它。有关示例,请参阅此 answer

【讨论】:

    猜你喜欢
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 2012-09-15
    相关资源
    最近更新 更多