Я хочу изменить адреса электронной почты на основе почтовых кодов, введенных пользователями. Мой код выглядит, как показано ниже:Alter Webform «На адрес электронной почты» на основе некоторых значений с использованием PHP в Drupal 7
function my_webform_tracker_webform_submission_render_alter(&$renderable) {
$node_id = (int)$renderable['#node']->nid;
if ($node_id == 257) {
$postal_code = (int)$renderable['#submission']->data[5][0];
if($postal_code >= 14000 && $postal_code <= 14990) {
$renderable['#email'][email] = "[email protected]";
$renderable['#node']->webform['emails'][1]['email'] = "[email protected]";
$renderable['#node']->webform['emails'][2]['email'] = "[email protected]";
//print "<pre>"; print_r($renderable); exit;
}
}
}
Я пробовал много, но электронный идентификатор, кажется, не изменилось.
Пожалуйста, помогите мне разобраться в этом.
Эта строка выглядит подозрительной: $ renderable ['# email'] [email] = "[email protected]"; email не получил кавычек. Возможно, вы хотели написать: $ renderable ['# email'] ['email'] = "[email protected]"; –
hook_webform_submission_render_alter() изменит способ отображения результатов представлений, сделанных с помощью вашей веб-формы в бэк-офисе. Таким образом, это не изменит значение, в лучшем случае вы будете скрывать их с другим значением при просмотре этого экрана. Если это то, что вы пытаетесь сделать, лучше всего начать с активации модуля devel и просто сделать dpm ($ renderable); Итак, у вас будет лучшее представление о том, какие значения в вашей визуализируемой переменной (и даже получили путь к значениям, чтобы вы могли скопировать их в свой код, чтобы их изменить). –