Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
1/10
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain
1/10

Have Fun, Be Safe, Make Good Choices and Call Your Grandma/Grandpa Keychain

$11.99
$0.00
Save $-11.99
Style
Please select a style
Quantity
Over $49.99 Free Shipping
30-day Zero-risk Return
100% Customer Satisfaction
Secure Payments
Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.

This is a Great Reminder of those important rules, especially CALL YOUR GRANDMA/GRANDPA!

★ Graduation gift, birthday gift, high school graduation gift, granddaughter gift, grandson gift, driver's license gift, Stocking Stuffer!

★ It's engraved on high-grade stainless steel so that it has an incredible shine that you will love every time that you look at it.

This Keychain will come beautifully packaged in an elegant velvet cloth jewelry pouch, and ready for gift giving.

Call Your MOM Have Fun Be Safe Make Good Choices Christmas image 4

Size: about 28*50mm

We Offer a 100% Happiness Guarantee

➜ If you’re not 100% satisfied with your purchase for any reason, please contact us and we will make it right. Your satisfaction is our ultimate goal.