Как разделить переменную между двумя функциями в плагине php?

Мне нужно передать переменную (calltoaction) в функцию 2. Я попытался глобальный, это не будет. Как это сделать?

функция 1:

function wp_email_capture_form($calltoactiondesc,$error = 0) {
global $calltoaction;
/*Echo to a Variable*/
ob_start();
echo $calltoactiondesc;
$calltoaction= ob_get_contents();
ob_end_clean();

$url = get_option('home');
$url = addLastCharacter($url);
?>
<div id="wp_email_capture" class="wp-email-capture wp-email-capture-widget wp-email-capture-widget-worldwide">
<form name="wp_email_capture" method="post" action="<?php echo $url; ?>">
<?php if (isset($_GET['wp_email_capture_error'])) {
$error = wp_email_capture_sanitize($_GET['wp_email_capture_error']);
echo "<div class='wp-email-capture-error'>".__('Error:','WPEC'). $error ."</div>";
} ?>
<div class="col-lg-9 col-sm-9 col-xs-9 col-md-9 form-group textbox-group">
<input name="wp-email-capture-email" id="wp-email-capture-email-widget" type="text" class="wp-email-capture-email wp-email-capture-input wp-email-capture-widget-worldwide wp-email-capture-email-widget wp-email-capture-email-input wp-email-capture-email-input-widget form-control input-lg input" title="Email" placeholder="YOUR EMAIL ADDRESS" />
</div>
<div class="col-lg-3 col-sm-3 col-xs-3 col-md-3 form-group textbox-group">
<input type="hidden" name="wp_capture_action" value="1" />
<input name="Submit" type="submit" value="<?php _e('SUBMIT','WPEC'); ?>" class="wp-email-capture-submit wp-email-capture-widget-worldwide subscribe-button" />
</div>
</form>
</div>
<?php
}

ПРИМЕЧАНИЕ: я передаю переменную только через функцию 1. когда я отправляю функцию «процесс», показанную ниже, вызывает и выполняет. Но глобальная переменная не проходит.

function wp_email_capture_process() {
if(isset($_REQUEST['wp_capture_action'])) {
wp_email_capture_signup();
}
......
}

функция 2:

function wp_email_capture_signup() {
global $wpdb;
global $calltoaction;
// Random confirmation code
$confirm_code=md5(uniqid(rand()));
$starturl = $_SERVER['HTTP_REFERER'];
if (strpos($starturl, "?") === false) {
$extrastring = "?";
} else {
$extrastring = "&";
}
$email = $_REQUEST['wp-email-capture-email'];
if (!is_email($email)) {
$error = urlencode(__('Not a valid email','WPEC'));
$url = $starturl . $extrastring . "wp_email_capture_error=" . $error;
wp_redirect($url);
die();
}
....
....
}

0

Решение

Вы можете использовать переменную $ GLOBALS

$i=1;

function &test1 ($i) {
$GLOBALS['i']++;
return $GLOBALS['i'];
}

function test2(){
echo $GLOBALS['i'];
}

test1($i);
test2();
// echo $i : 2;

Надеюсь, это поможет вам

0

Другие решения

Чтобы глобальные переменные работали, вам нужно объявить глобальную переменную вне всех функций …

global $calltoaction;

function wp_email_capture_form($calltoactiondesc,$error = 0) {
global $calltoaction;
/* the rest of your function */
}

function wp_email_capture_process() {
/* the rest of your function */
}

function wp_email_capture_signup() {
global $wpdb,
$calltoaction;
/* the rest of your function */
}

Поскольку вы не установили (или, по крайней мере, не показали нам, что вы установили) глобальную переменную вне всех функций, функции не имеют представления о том, что это за переменная.

Также обратите внимание, что при использовании «global» внутри функции вам нужно всего лишь набрать «global» один раз и иметь список глобальных переменных через запятую после …

0

По вопросам рекламы [email protected]