我想让用户在一个表单中选择产品。为此,我需要使用已发布的 WooCommerce 产品动态填充表单。
我找到了一个用 WooCommerce 产品填充选择字段的解决方案。但是用户应该能够选择每种产品的数量。因此我需要使用列表字段并填充列表字段的单元格。
以下是列表字段的外观:
SKU 和标题字段应动态填充。数量字段供用户填写。
这是我使用 WooCommerce 产品数据填充选择字段的代码:
add_filter( 'gform_pre_render_5', 'populate_posts' );
add_filter( 'gform_pre_validation_5', 'populate_posts' );
add_filter( 'gform_pre_submission_filter_5', 'populate_posts' );
add_filter( 'gform_admin_pre_render_5', 'populate_posts' );
function populate_posts( $form ) {
foreach ( $form['fields'] as &$field ) {
if ( $field->type != 'select' || strpos( $field->cssClass, 'populate-posts' ) === false ) {
continue;
}
// you can add additional parameters here to alter the posts that are retrieved
// more info: http://codex.wordpress.org/Template_Tags/get_posts
$posts = get_posts( 'numberposts=-1&post_status=publish&post_type=product' );
$choices = array();
foreach ( $posts as $post ) {
$choices[] = array( 'text' => $post->post_title, 'value' => $post->post_title );
}
// update 'Select a Post' to whatever you'd like the instructive option to be
$field->placeholder = 'Select a product';
$field->choices = $choices;
}
return $form;
}
慕斯王
茅侃侃