VirtueMart Forum

VirtueMart 2 + 3 + 4 => Virtuemart Development and bug reports => Topic started by: ViPeS on January 05, 2023, 20:37:43 PM

Title: Undefined property: TableUserinfos::$virtuemart_state_id
Post by: ViPeS on January 05, 2023, 20:37:43 PM
Hi!
J 4.2.6,  VM 4.0.12 10777, PHP 8.0
Error when opening product for editing
Undefined property: TableUserinfos::$virtuemart_state_id in /home/viinis/domains/virtuvinis.lt/public_html/administrator/components/com_virtuemart/helpers/calculationh.php on line 262

What is $virtuemart_state_id ?
Title: Re: Undefined property: TableUserinfos::$virtuemart_state_id
Post by: Milbo on January 09, 2023, 11:11:54 AM
Thank you for this bug report. I think the solution is quite easy, analogue to the vendorAdress some lines below

if (isset( $userFieldsBT->virtuemart_country_id)){
$this->_deliveryCountry = $userFieldsBT->virtuemart_country_id;
}
if (isset( $userFieldsBT->virtuemart_state_id)) {
$this->_deliveryState = $userFieldsBT->virtuemart_state_id;
}
Title: Re: Undefined property: TableUserinfos::$virtuemart_state_id
Post by: ViPeS on January 10, 2023, 18:32:28 PM
Hi, thanks for the reply!
I did as you suggested, but the error didn't go away.
I just commented out the line and the error didn't show up anymore.
//$this->_deliveryState = $userFieldsBT->virtuemart_state_id;
if (!VmConfig::isSite()) {

$userModel = VmModel::getModel('user');
$userDetails = $userModel->getUser();
if(!empty($userDetails->userInfo)){
$userFieldsBT = reset($userDetails->userInfo);
$this->_deliveryCountry = $userFieldsBT->virtuemart_country_id;
//$this->_deliveryState = $userFieldsBT->virtuemart_state_id;
//vmdebug('My UserDetails',$this->_deliveryCountry,$this->_deliveryState,$userFieldsBT);
} else {
$vendorModel = VmModel::getModel ('vendor');
$vendorAddress = $vendorModel->getVendorAdressBT (1);
if (isset( $userFieldsBT->virtuemart_country_id)){
$this->_deliveryCountry = $userFieldsBT->virtuemart_country_id;
}
if (isset( $userFieldsBT->virtuemart_state_id)) {
$this->_deliveryState = $userFieldsBT->virtuemart_state_id;
}
}
return;
}