Я использую jcart http://conceptlogic.com/jcart/, чтобы создать функциональность тележки в wordpress.Wordpress + PHP: использование переменной массива с in_array внутри другой функции
Я пытаюсь получить доступ к функции jcart в другой функции в моем файле functions.php.
foreach($jcart->get_contents() as $item) {
$psitems[] = $item['id'];
}
Этот код прекрасно работает на самом functions.php или на любом шаблоне page-- он создает $psitems
массив таким образом я могу проверить, если массив содержит определенные значения.
Теперь, в следующей функции:
function gallery_shortcode_fancybox($attr) { ...
У меня есть следующие:
foreach($jcart->get_contents() as $item) {
$psitems[] = $item['id'];
}
foreach ($attachments as $id => $attachment) {
$link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_image($id, 'full', false, false) : wp_get_attachment_image($id, 'full', true, false);
$output .= "<div class='property'>";
$output .= "$link";
$output .= '
<div class="property-details">
<div class="property-details-inner">
<form method="post" action="" class="jcart">
<fieldset>
<input type="hidden" name="jcartToken" value="' . $_SESSION['jcartToken'] . '" />
<input type="hidden" name="my-item-id" value="' . $id . '" />
<input type="hidden" name="my-item-name" value="Photo #' . $id . '" />
<input type="hidden" name="my-item-url" value="' . wp_get_attachment_url($id) . '" />
<input type="hidden" name="my-item-qty" value="1" size="3" />';
if(in_array($id,$psitems)) {
$output .= '<span class="action terminal pull-sheet">Image in Pullsheet</span>'
} else {
$output .= '<input type="submit" name="my-add-button" value="Add to Pull Sheet" class="action terminal pull-sheet" />';
}
$output .= '</fieldset>
</form>
</div> <!-- property-details-inner -->
</div>';
$output .= "</div>";
}
return $output;
Я получаю следующее сообщение об ошибке:
Call to a member function get_contents() on a non-object
Если я пытаюсь поместить оригинальный foreach($jcart->get_contents() as $item) { ...
кода вне функции, я получаю следующую ошибку:
Warning: in_array() expects parameter 2 to be array, null given in...
Как я могу получить доступ к этому массиву внутри функции и избежать этих ошибок?
Спасибо!
с помощью функции инициализации из оригинального сценария jcart.php работал отлично, спасибо –