製品のカスタム フィールドの値を取得しようとしています。その商品のIDしか持っていません。カスタムフィールドのタイトルを知っています。
そのカスタムフィールドの値を取得するにはどうすればよいですか?
助けてください。
PS: PHP はよく知っていますが、Joomla/Virtuemart は初めてです。
製品のカスタム フィールドの値を取得しようとしています。その商品のIDしか持っていません。カスタムフィールドのタイトルを知っています。
そのカスタムフィールドの値を取得するにはどうすればよいですか?
助けてください。
PS: PHP はよく知っていますが、Joomla/Virtuemart は初めてです。
これは VM2.x で機能します。
VM はカスタム フィールドの値を #__virtuemart_customs に保存しています
商品とカスタムフィールドの関係は #__virtuemart_product_customfields で維持されています
タイトルと製品 ID があるので、これを試すことができます
$db = &JFactory::getDBO();
$sql = "SELECT F.custom_value #__virtuemart_customs AS C LEFT JOIN #__virtuemart_product_customfields AS F ON F.virtuemart_customfield_id = C.virtuemart_custom_id where (C.custom_title='$your_customtitle' and F.virtuemart_product_id = '$product_id')";
$db->setQuery($sql);
$db->query();
$res = $db->loadAssoc();
echo $res['custom_value'];
また、内部サブクエリで試してください。
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('virtuemart_product_id,custom_value');
$query->from('#__virtuemart_product_customfields');
$db->setQuery((string)$query);
$results = $db->loadObjectList();
if ($results){
foreach($results as $result)
{
// do your stuff here
}