I am trying to pass my $_SESSION variables into a database query function for WordPress. If I define the $_SESSION variables within the function it works fine. But when I define them on a global level and try to pass them in, they do not pass through. Please view below for examples.
This will pass through to the function below
$_SESSION['pages'] = $_POST['pages'];
But when I add
$pages = $_SESSION['pages'];
$pages will not pass through to the function.
$_SESSION['pages'] = $_POST['pages']; //passes
$pages = $_SESSION['pages']; //does not pass
function insertLocalBusinessSchema()
{
//include global config
include_once($_SERVER['DOCUMENT_ROOT'].'/stage/wp-config.php' );
global $wpdb;
// if I try to define this outside of the function it doesn't pass through.
$pages = implode(',', $_SESSION['pages']);
$paymentAccepted = implode(',', $_SESSION['paymentAccepted']);
$table_name = $wpdb->prefix . "schemaLocalBusiness";
$insert = "UPDATE ".$table_name." SET addressLocality = '".$_SESSION['addressLocality']."', addressRegion = '".$_SESSION['addressRegion']."', postalCode = '".$_SESSION['postalCode']."', streetAddress = '".$_SESSION['streetAddress']."', pages = '".$pages."', paymentAccepted = '".$paymentAccepted."' WHERE id = 1";
$wpdb->query($insert);
}
Thank you for the help in advance!
$_SESSION
is a global variable
and so you can call it from anywhere you wish, while $pages
is not defined globally so you would need to pass it as a parameter to the function like this:
function insertLocalBusinessSchema($pages)
{
echo $pages; // the variable is now in the function's scope
}
You would then call the function passing the parameter for $pages
:
insertLocalBusinessSchema($pages);
If you wish to use the variable $pages
inside the function without passing its value as a parameter, you can do it by using the $GLOBALS PHP super global variable
like this:
// super global variable GLOBALS
$GLOBALS['pages'] = $_POST['pages'];
function insertLocalBusinessSchema()
{
echo $GLOBALS['pages']; // this also works
}
more here .
Or you can use the global
keyword like this:
$pages = $_POST['pages'];
function insertLocalBusinessSchema()
{
global $pages; // $pages becomes global
echo $pages; // this also works
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.