Car Cup Holder Expander Adapter, Adjustable All Purpose Cup Holder Expander for Car with Rubber Fits Less Than 5.51" Large Bottles & Mugs & Foods & Drinks
Car Cup Holder Expander Adapter, Adjustable All Purpose Cup Holder Expander for Car with Rubber Fits Less Than 5.51" Large Bottles & Mugs & Foods & Drinks
${function() {
const variantData = data.variant || {"id":"5bc4980b-6150-4ef5-a893-8cd73a09a759","product_id":"ab3a6822-d26c-4f80-ac83-c5148d631cf6","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"CE05010BK-W1","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":16.51,"min_quantity":1}],"weight":"0","compare_at_price":"19.99","price":"16.51","retail_price":"19.99","available":true,"url":"\/products\/car-cup-holder-expander-adapter-adjustable-all-purpose-cup-holder-expander-for-car-with-rubber-fits-less-than-5-51-large-bottles-mugs-foods-drinks?variant=5bc4980b-6150-4ef5-a893-8cd73a09a759","available_quantity":999999999,"options":[],"off_ratio":"17","flashsale_info":{"variant_id":"5bc4980b-6150-4ef5-a893-8cd73a09a759","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"16.51","compare_at_price":"","discount_price":"16.51","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"17","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
const saveType = null;
const productSaveLabel = null;
return `
-
${ variantData.off_ratio }%
`; }()}
${function(){
return `
${data.starNum}/${data.starTotal}
`;
}()}
${function(){
return `
${data.showStarText === 'true' ? `
${data.starNum}/${data.starTotal}
` : ''}
`;
}()}
const TAG = 'spz-custom-revue-star';
class SPZCustomRevueStar extends SPZ.BaseElement {
constructor(element) {
super(element);
}
static deferredMount() {
return false;
}
buildCallback = () => {
this.action_ = SPZServices.actionServiceForDoc(this.element);
this.templates_ = SPZServices.templatesForDoc(this.element);
this.xhr_ = SPZServices.xhrFor(this.win);
this.starNum = this.element.getAttribute('starNum');
this.starTotal = this.element.getAttribute('starTotal');
this.showStarText = this.element.getAttribute('showStarText');
this.starColor = this.element.getAttribute('color');
this.interact = this.element.getAttribute('interact');
this.starSize = this.element.getAttribute('starSize') || 14;
}
mountCallback = () => {
this.doRender_({
starTotal: this.starTotal,
totalArray: Array.from({ length: Number(this.starTotal) }, (v, k) => k + 1),
starNum: this.starNum,
showStarText: this.showStarText,
starColor: this.starColor,
starSize: this.starSize
}).then(() => {
if (this.interact) {
this.addEventListeners_();
}
});
}
addEventListeners_ = () => {
const stars = document.querySelectorAll('.revue-star__star');
stars.forEach(star => {
star.addEventListener('click', event => {
const starEl = star.closest('.revue-star__star');
const starIndex = Number(starEl.dataset.index);
let isHalf = event.offsetX < star.offsetWidth / 2;
// rtl
if (document.documentElement.getAttribute('dir') === 'rtl') {
isHalf = event.offsetX > star.offsetWidth / 2;
}
const starValue = isHalf ? starIndex - 0.5 : starIndex;
this.starClickHandler_({ value: starValue });
});
});
}
renderStar = () => {
const isRtl = document.documentElement.getAttribute('dir') === 'rtl';
const stars = this.element.querySelectorAll('.revue-star__star');
stars.forEach((star, i) => {
const starIndex = i + 1;
const starEl = star.querySelector('svg:nth-child(2)');
const isHalf = this.starNum % 1 > 0 && Math.ceil(this.starNum) === starIndex;
const isSolid = starIndex <= Math.ceil(this.starNum);
starEl.style.display = isSolid ? 'block' : 'none';
if (isHalf) {
if (isRtl) {
// RTL布局下,如果是半星,显示星星的右半边
starEl.style.clipPath = `polygon(50% 0, 100% 0, 100% 100%, 50% 100%)`;
} else {
// LTR布局下,如果是半星,显示星星的左半边
starEl.style.clipPath = `polygon(0 0, 50% 0, 50% 100%, 0 100%)`;
}
} else {
starEl.style.clipPath = `polygon(0 0, 100% 0, 100% 100%, 0 100%)`
}
});
const showCountEle = this.element.querySelector('#revue-star-show-count');
showCountEle && SPZ.whenApiDefined(showCountEle).then((api) => {
api.render({ starNum: this.starNum, starTotal: this.starTotal });
});
}
doRender_ = (data) => {
return this.templates_
.findAndRenderTemplate(this.element, { starSize: this.starSize, ...data }, null)
.then((el) => {
const children = this.element.querySelector('*:not(template)');
children && SPZCore.Dom.removeElement(children);
this.element.appendChild(el);
})
.then(() => {
this.starNum = data.starNum;
this.renderStar();
});
}
starClickHandler_ = (event) => {
this.starNum = event.value;
this.renderStar();
this.triggerEvent_('change', { value: event.value });
}
triggerEvent_(name, data) {
const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {});
this.action_.trigger(this.element, name, event);
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.CONTAINER;
}
}
SPZ.defineElement(TAG, SPZCustomRevueStar)
()
try {
const productId = window.SHOPLAZZA.meta.page.resource_id;
const productType = `default`;
const getProductReviews = (star_least) =>
fetch('/api/comment/count-star-multi',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
product_id: [productId],
star_least: star_least || 1,
}),
}).then(res => res.json());
try {
const section = document.querySelector('#revue-product-star');
if(productType === "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e);
window.addEventListener('load', () => {
try {
const section = document.querySelector('#revue-product-star');
if(productType=== "gift_card" && section) {
section.style.display = 'none';
}
} catch(e) {
console.log(e)
}
})
}
const getReviewsConfig = async () => {
let data = {};
const url = new URL(window.location.href);
const preview_theme_id = url.searchParams.get('preview_theme_id');
const commentConfig = await fetch('/api/comment-config', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
data = commentConfig.data;
const themeConfig = await fetch(`/api/comment-config?theme_id=${preview_theme_id || ''}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
}
}).then(res => res.json());
if (themeConfig?.data && themeConfig.data.star_color) {
data.star_color = themeConfig.data.star_color;
}
if (preview_theme_id) {
data.star_least = window.apps_global && apps_global.reviews && apps_global.reviews.preview_star_least;
} else if (themeConfig?.data && themeConfig.data.product_settings) {
data.star_least = themeConfig.data.product_settings.star_least;
}
return data;
};
if (productId && window.SHOPLAZZA.meta.page.template_type == 1) {
getReviewsConfig().then(async res => {
const config = res;
let review = await getProductReviews(config.star_least);
review = review.data[productId];
if (!config.open_status || (!review.comment_avg_star && !config.show_no_comment_star)) return;
const render = async () => {
const section = document.querySelector('#revue-product-star');
const starComponent = document.querySelector('#revue-product-star-component');
const count = document.querySelector('#revue-product-star-count');
count.innerText = review.published_count;
const api = await SPZ.whenApiDefined(starComponent);
api.doRender_({
starNum: review.comment_avg_star,
starTotal: 5,
showStarText: false,
starColor: config.star_color,
totalArray: Array.from({ length: 5 }, (v, k) => k + 1)
});
section.style.opacity = 1;
}
render();
document.addEventListener('dj.editor.update', render);
});
}
} catch (e) {console.warn(e)};
${function() {
const minInventory = parseInt('7');
const maxInventory = parseInt('10');
const randomInventory = Math.round(Math.random() * (maxInventory - minInventory)) + minInventory;
const customText = "Only {stock} item(s) left in stock!".replace(/\{stock\}/g, '' + randomInventory + '');
const barWidth = (randomInventory / maxInventory) * 100 + '%';
return `
`;
}()}
Product was out of stock.
Enjoy free shipping on every order, delivered to your doorstep no matter where you are in the world.
Shop with confidence with our hassle-free returns policy, ensuring you love what you buy.
Designed with the planet in mind, all our products are committed to sustainable practices.
Your payment information is always protected with our advanced, encrypted checkout security.
🧃🥛➤【 Fine Workmanship 】: SPEEDWOW new car cup holder is made of PC as a whole, weighs about 420g. The material is upgraded again and it is strong, so you can experience the value of the product in your hands, and there is a difference with the market.
🧃🥛➤【 Multi-use 】: Do you want an all purpose cup holder? The magic is that we can also expand the size of the cup holder with one hand rotation, no need to pull, easy to adjust from 2.56" to 5.51", you can put a variety of sizes of cups, drinks, and even foods.With it, no longer subject to the limitations of only a single size cup, to meet the new experience.
🧃🥛➤【 Excellent Stability 】: height of the bracket of car cup holder expander we designed at 8.94cm, as well as the three pieces of bracket made thicker, the wall of the bracket increased rubber gasket, better enhance the stability of cup holder expander for car in driving acceleration, turning, not easy to fall off. The height lengthening makes the cup on the high side can also be used stably.
🧃🥛➤【 Base Upgrade 】: automotive cup holders to change the traditional short base, separated base more convenient for users to install in the car, fit firmly in the car. Compatible with Tesla series, RVs, trucks, SUVs, treadmills, ship, golf cart, sectional couch etc.
🧃🥛➤【 Convenient & Practical 】SPEEDWOW has been persistently studying the work of cup holder for car design, constantly absorbing user suggestions to optimize the product style, insisting on providing car enthusiasts with convenient and practical products to accompany you through a good and comfortable car life.
-
🌌🥤➤【 Enhanced Durability 】:
Our car water bottle holder is made of upgraded thickened PC material, ensuring a sturdy and long-lasting construction. The reinforced expandable arms add to the impact resistance and overall service life of the cup holder extender, making it more durable than similar products on the market.
-
🌌🥤➤【 Easy Installation 】 :
Installing our car drink holder is a breeze. Simply hold the middle of the cup holder extender's base and twist it to expand and pop out the bottom adapter. Insert it into your car's cup holder hole and rotate vigorously to ensure a secure fit. Use the triangle toggle button on the cup holder expander rack to adjust its size according to your cup, and you're good to go.
-
🌌🥤➤【Stable and Adjustable Design 】 :
The expansion base legs of our car cup holder mount stay firmly in place, providing stability during travel. It can be conveniently used in different vehicles, such as motorcycles, boats, trucks, trailers, and golf carts, as long as they have cylindrical cup holders. The adjustable blade securely holds bottles and cups with diameters ranging from 2.56" to 5.51".
-
💝💝➤【Warm Tips 】 :
You can view the actual product video on the SPEEDWOW product page so that SPEEDWOW users can visualize the actual product and the real installation results. Conditions of application of the product:
☑️■It is recommended for users with large space inside the car.
☑️■We listened to the user's opinion that it is not suitable for the original cup mouth of the more unusual shape, and optimized the installation of the base to expand the use of suitable for all car models, provided that in addition to the original narrow space inside the car.
Vendor by :
SPEEDWOW
Sku :
CE05010BK-W1
Inventory :
999999999
${function(){
const variantData = data.variant || {"id":"5bc4980b-6150-4ef5-a893-8cd73a09a759","product_id":"ab3a6822-d26c-4f80-ac83-c5148d631cf6","title":"","weight_unit":"lb","inventory_quantity":0,"sku":"CE05010BK-W1","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":16.51,"min_quantity":1}],"weight":"0","compare_at_price":"19.99","price":"16.51","retail_price":"19.99","available":true,"url":"\/products\/car-cup-holder-expander-adapter-adjustable-all-purpose-cup-holder-expander-for-car-with-rubber-fits-less-than-5-51-large-bottles-mugs-foods-drinks?variant=5bc4980b-6150-4ef5-a893-8cd73a09a759","available_quantity":999999999,"options":[],"off_ratio":"17","flashsale_info":{"variant_id":"5bc4980b-6150-4ef5-a893-8cd73a09a759","product_id":"","quantity":0,"discount_id":"","limit_time":0,"limit_buy":0,"user_limit_buy":0,"discount_sales":0,"discount_sales_rate":"","discount_stock":0,"ends_at":0,"starts_at":0,"allow_oversold":"","allocation_method":"","price":"16.51","compare_at_price":"","discount_price":"16.51","customary_saved_price":"","customary_off_ratio":"","discount_saved_price":"","discount_off_ratio":"17","use_before_price":false,"before_price":"","title":"","properties":"","color_setting_promotional_copy":"","discount_quantity":0,"is_need_split":false},"sales":0};
return `
Vendor by :
${data.product && data.product.vendor}
Weight :
${variantData && variantData.weight}${variantData && variantData.weight_unit}
Barcode :
${variantData && variantData.barcode}
Sku :
${variantData && variantData.sku}
Inventory :
${variantData && variantData.available_quantity}
` }()}