Wordpress CF7 从短代码属性中获取下拉列表的所有值

Wordpress CF7 Getting all values of the Drop-down from shortcode attributes

我设法在 cf7 中获取下拉列表的默认值,但我想知道是否可以从短代码中获取所有值。

让它们带有管道会很有帮助,因为我需要将 ID 和标签传递给它。

如果我不清楚。我正在尝试在此表单上构建下拉菜单:

[select your-recipient "CEO|55"
                    "Sales|45"
                    "Support|99"]

但是我需要通过简码传递这三个值。

参考:https://contactform7.com/getting-default-values-from-shortcode-attributes/

我通过在 functions.php 中创建一个动态 select 字段来解决这个问题。我使用 public 变量填充的 select 字段值。

function dynamic_field_values($tag, $unused)
{
    $dates = get_query_var('DATES');

    if ($tag['name'] != 'dates')
        return $tag;


    if (!count($dates ) > 0) {
        $tag['raw_values'][] = 'No dates available';
        $tag['values'][] = 'No dates available';
        $tag['labels'][] = 'No dates available';

        return $tag;
    } else {
        foreach ($dates as $date) {
            $tag['raw_values'][] = $date->id;
            $tag['values'][] = $date->id;
            $tag['labels'][] = $date->caption;
        }

        return $tag;
    }
}
add_filter('wpcf7_form_tag', 'dynamic_field_values', 10, 2);