Shackle Pin
*Images for illustration purposes only.
{source}
input;
$ProductId=$input->get('virtuemart_product_id');
if(!empty($ProductId)){
$db=JFactory::getDBO();
$X='SELECT product_sku FROM dsas_virtuemart_products WHERE virtuemart_product_id='.$ProductId;
$db->setQuery($X);
$ProductSku=$db->loadResult();
$find_underscore = preg_match('/_/', $ProductSku);
if($find_underscore){
$product_sku = explode("_",$ProductSku);
$p_sku = $product_sku[1];
}else{
$p_sku = $ProductSku;
}
echo 'Part Number: <span style="font-weight:600;color:#333;">'.$p_sku.'</span>';
}
?>{/source}
{source}
getQuery(true)
->select('*')
->from($db->quoteName('#__dobinsonscataloguevehicles_vehicles'))
->where($db->quoteName('code') . ' = ' . $db->quote($skuPart));
$db->setQuery($query);
$vehicle = $db->loadObject();
if (!$vehicle) {
echo 'No vehicle found.';
return;
}
$suspensionPageLink = $vehicle->suspension_page_link ?: $vehicle->vehicle_page_link;
$makeNames = [];
$typeNames = [];
$modelNames = [];
// Fetch makes
$makeIds = explode(",", $vehicle->make);
if (!empty($makeIds)) {
$query = $db->getQuery(true)
->select('make')
->from($db->quoteName('#__dobinsonscataloguevehicles_makes'))
->where($db->quoteName('id') . ' IN (' . implode(',', array_map([$db, 'quote'], $makeIds)) . ')');
$db->setQuery($query);
$makes = $db->loadObjectList();
foreach ($makes as $make) {
$makeNames[] = $make->make;
}
}
// Fetch types
$typeIds = explode(",", $vehicle->type);
if (!empty($typeIds)) {
$query = $db->getQuery(true)
->select('type')
->from($db->quoteName('#__dobinsonscataloguevehicles_types'))
->where($db->quoteName('id') . ' IN (' . implode(',', array_map([$db, 'quote'], $typeIds)) . ')');
$db->setQuery($query);
$types = $db->loadAssocList();
foreach ($types as $type) {
$typeNames[] = $type['type'];
}
}
// Parse vehicle models
$vehicleModels = json_decode($vehicle->model);
if (!empty($vehicleModels)) {
foreach ($vehicleModels as $model) {
$startMonth = $model->month_start ? sprintf('%02s/', $model->month_start) : '';
$startYear = $model->year_start ?: '';
$endMonth = $model->month_end ? sprintf('%02s/', $model->month_end) : '';
$endYear = $model->year_end ?: '';
$separator = ($endMonth || $endYear) ? ' to ' : ' on';
$modelNames[] = $model->model . ' (' . ($startMonth === '13/' ? 'Mid ' : $startMonth) . $startYear . $separator . ($endMonth === '13/' ? 'Mid ' : $endMonth) . $endYear . ')';
}
}
$makeNamesStr = implode(', ', $makeNames);
$typeNamesStr = implode(', ', $typeNames);
$modelNamesStr = implode(', ', $modelNames);
echo 'Vehicle Fitment: ' . htmlspecialchars($makeNamesStr . ' ' . $typeNamesStr . ' ' . $modelNamesStr, ENT_QUOTES, 'UTF-8') . '';
}
$input = JFactory::getApplication()->input;
$productId = $input->getInt('virtuemart_product_id');
if ($productId) {
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('product_sku')
->from($db->quoteName('#__virtuemart_products'))
->where($db->quoteName('virtuemart_product_id') . ' = ' . $db->quote($productId));
$db->setQuery($query);
$productSku = $db->loadResult();
if ($productSku) {
vehicleFitment($productSku);
} else {
echo 'Product SKU not found.';
}
}
?>
{/source}
$ 49.67
(EACH)
Tax amount: $ 4.52
Shackle Pin
$ 49.67
Greasable: Fit in Pairs
Sold As: | EACH |
Quantity Per Vehicle: | 2 |
Bumper Cut: | |
Suits Flared Models: |
Length: | 18 CM | |
Width: | 16 CM | |
Height: | 6 CM | |
Weight: | 0.62 KG |
{source}
';
$skuParts = explode('_', $productSku);
$skuPartNo = $skuParts[0];
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('*')
->from($db->quoteName('#__virtuemart_products'))
->where($db->quoteName('published') . ' = 1')
->where($db->quoteName('product_sku') . ' LIKE ' . $db->quote('%' . $skuParts[1] . '%'));
$db->setQuery($query);
$relatedProducts = $db->loadObjectList();
echo '
';
}
}
$input = JFactory::getApplication()->input;
$productId = $input->getInt('virtuemart_product_id');
if ($productId) {
$db = JFactory::getDBO();
$query = $db->getQuery(true)
->select('product_sku')
->from($db->quoteName('#__virtuemart_products'))
->where($db->quoteName('virtuemart_product_id') . ' = ' . $db->quote($productId));
$db->setQuery($query);
$productSku = $db->loadResult();
if ($productSku) {
partsAlsoFits($productSku);
} else {
echo 'Product SKU not found.';
}
}
?>
{/source}More Vehicle Fitments (Please Check Model Compatibility)
';
foreach ($relatedProducts as $product) {
// Get product long description
$queryDesc = $db->getQuery(true)
->select('*')
->from($db->quoteName('#__virtuemart_products_en_gb'))
->where($db->quoteName('virtuemart_product_id') . ' = ' . $db->quote($product->virtuemart_product_id));
$db->setQuery($queryDesc);
$productDesc = $db->loadObject();
// Get category name
$queryCat = $db->getQuery(true)
->select('*')
->from($db->quoteName('#__virtuemart_product_categories'))
->join('INNER', $db->quoteName('#__virtuemart_categories_en_gb') . ' ON ' . $db->quoteName('#__virtuemart_categories_en_gb.virtuemart_category_id') . ' = ' . $db->quoteName('#__virtuemart_product_categories.virtuemart_category_id'))
->where($db->quoteName('#__virtuemart_product_categories.virtuemart_product_id') . ' = ' . $db->quote($product->virtuemart_product_id));
$db->setQuery($queryCat);
$category = $db->loadObject();
// Generate product link
$productLink = "index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=" . $product->virtuemart_product_id . "&virtuemart_category_id=" . $productDesc->virtuemart_category_id;
$url = JRoute::_($productLink);
$urlParts = explode("/", $url);
$productUrl = end($urlParts);
// Fetch vehicle details
$queryVehicle = $db->getQuery(true)
->select('*')
->from($db->quoteName('#__dobinsonscataloguevehicles_vehicles'))
->where($db->quoteName('code') . ' = ' . $db->quote($skuPartNo));
$db->setQuery($queryVehicle);
$vehicleDetail = $db->loadObject();
if ($vehicleDetail) {
$suspensionPageLink = $vehicleDetail->suspension_page_link ?: $vehicleDetail->vehicle_page_link;
// Fetch make names
$makeIds = explode(',', $vehicleDetail->make);
$makeNames = [];
foreach ($makeIds as $makeId) {
$queryMake = $db->getQuery(true)
->select('make')
->from($db->quoteName('#__dobinsonscataloguevehicles_makes'))
->where($db->quoteName('id') . ' = ' . $db->quote($makeId));
$db->setQuery($queryMake);
$make = $db->loadResult();
if ($make) {
$makeNames[] = $make;
}
}
$makeNamesStr = implode(', ', $makeNames);
// Fetch type names
$typeIds = explode(',', $vehicleDetail->type);
$typeNames = [];
foreach ($typeIds as $typeId) {
$queryType = $db->getQuery(true)
->select('type')
->from($db->quoteName('#__dobinsonscataloguevehicles_types'))
->where($db->quoteName('id') . ' = ' . $db->quote($typeId));
$db->setQuery($queryType);
$type = $db->loadResult();
if ($type) {
$typeNames[] = $type;
}
}
$typeNamesStr = implode(', ', $typeNames);
// Parse vehicle models
$vehicleModels = json_decode($vehicleDetail->model);
$modelNames = [];
if ($vehicleModels) {
foreach ($vehicleModels as $model) {
$startMonth = $model->month_start ? sprintf('%02s', $model->month_start) . '/' : '';
$startYear = $model->year_start ?: '';
$endMonth = $model->month_end ? sprintf('%02s', $model->month_end) . '/' : '';
$endYear = $model->year_end ?: '';
$separator = ($endMonth || $endYear) ? ' to ' : ' on';
$modelNames[] = $model->model . ' (' . ($startMonth === '13/' ? 'Mid ' : $startMonth) . $startYear . $separator . ($endMonth === '13/' ? 'Mid ' : $endMonth) . $endYear . ')';
}
}
$modelNamesStr = implode(', ', $modelNames);
echo '
';
}
}
echo '
Part Category:
' . htmlspecialchars($category->category_name, ENT_QUOTES, 'UTF-8') . '
Description:
' . htmlspecialchars($productDesc->product_desc, ENT_QUOTES, 'UTF-8') . '
{source}
country;
$db = JFactory::getDbo();
$query3 = "SELECT * FROM `#__virtuemart_product_customfields` WHERE `virtuemart_product_id` = '".$product_id."'";
$db->setQuery($query3);
$custFieldVal = (array) $db->loadObjectList();
if(!empty($custFieldVal) && count($custFieldVal) > 0)
{
foreach($custFieldVal as $customfieldsresult)
{
$cust_field_id = $customfieldsresult->virtuemart_custom_id; // get all custom fields ID's
if($cust_field_id == 47)
{
//condition to get specific custom field
$stores_stock = $customfieldsresult->customfield_value;
$storeArr = explode("|", $stores_stock);
echo '<div class="availability-container">';
echo '<div class="availability-stores">';
$i=1;
foreach($storeArr as $Stores_val) {
if($i==1){echo '<div class="availability-store rockhampton">Rockhampton</div>'; }
if($reqLocation == 'India' || $reqLocation == 'Australia'){
if($i==2){echo '<div class="availability-store brisbane">Brisbane</div>'; }
if($i==3){echo '<div class="availability-store sydney">Sydney</div>'; }
if($i==4){echo '<div class="availability-store melbourne">Melbourne</div>'; }
if($i==5){echo '<div class="availability-store adelaide">Adelaide</div>'; }
}
$i++;
}
echo '</div>';
echo '<div class="availability-values">';
}
}
}
if(!empty($custFieldVal) && count($custFieldVal) > 0)
{
foreach($custFieldVal as $customfieldsresult)
{
$cust_field_id = $customfieldsresult->virtuemart_custom_id; // get all custom fields ID's
if($cust_field_id == 47)
{
//condition to get specific custom field
$stores_stock = $customfieldsresult->customfield_value;
$storeArr = explode("|", $stores_stock);
$i=1;
foreach($storeArr as $Stores_val) {
if($Stores_val==0){
$S_val = 'notavailable';
$r_value = '<i class="fa fa-times" aria-hidden="true"></i>';
} else {
$S_val = 'available';
$r_value = '<i class="fa fa-check" aria-hidden="true"></i>';
}
if($i==1) {
echo '<div class="'.$S_val.' availability-value rockhampton">'.$r_value.'</div>';
}
if($reqLocation == 'India' || $reqLocation == 'Australia'){
if($i==2){echo '<div class="'.$S_val.' availability-value brisbane">'.$r_value.'</div>'; }
if($i==3){echo '<div class="'.$S_val.' availability-value sydney">'.$r_value.'</div>'; }
if($i==4){echo '<div class="'.$S_val.' availability-value melbourne">'.$r_value.'</div>'; }
if($i==5){echo '<div class="'.$S_val.' availability-value adelaide">'.$r_value.'</div>'; }
}
$i++;
}
echo '</div>';
echo '</div>';
}
}
}
}
$input = JFactory::getApplication()->input;
$ProductId=$input->get('virtuemart_product_id');
if(!empty($ProductId)){
$stock_avail = stock_availbility($ProductId);
print_r($stock_avail);
}
?>
{/source}