Hide the price on the storefront
Hi,
I would like to hide the price of my products on my website and only show the price once the customers have logged in, Does anyone have any idea how to do it? Thank you |
Re: Hide the price on the storefront
You posted in XC5 forum but signature says XC4 - so which one is it? Either way though it will require custom coding for this work. If it is for XC4 you can find some tips here on the forum.
|
Re: Hide the price on the storefront
Quote:
|
Re: Hide the price on the storefront
You will need to write a mod for this task. If you are ready, I can help.
As a first step, please create an empty module according to the guide here: http://kb.x-cart.com/display/XDD/Step+1+-+creating+simplest+module |
Re: Hide the price on the storefront
Hello,
I'd also be interested in this. I already have created a module. Thank you! |
Re: Hide the price on the storefront
Look at the code used for the account links. It shows one list when logged in, another when not. So the effect you want should be easily achieved by following that example, overriding the template file with your module and adding the conditional IF statement.
|
Re: Hide the price on the storefront
Hello Mike,
thank you for your answer. Unfortunately I'm not overly familiar with X-cart yet, could you point me which files exactly I should modify with a module? Thanks again, |
Re: Hide the price on the storefront
Ok, so here is the Flexy code that checks if a user is logged in:
Code:
<ul class="account-links" IF="isLogged()"> I would probably overwrite: default/en/common/price_plain.tpl I haven't tested this but you could try wrapping it in a div like this: Code:
<div IF="isLogged()"> |
Re: Hide the price on the storefront
Thanks Mike, your solution seems to work. For the record, here's what I've done.
Using CustomSkin, I've created the file \xcart\skins\custom_skin\default\en\common\price_p lain.tpl containing the following code : Quote:
After activating CustomSkin, the prices only show up when signed in. Thanks again for the help! |
Re: Hide the price on the storefront
Hi Mike,
I have added in theme_tweaker/default/en/common/price_parts/price.tpl the following: <div IF="isLogged()"> <li><span class="price product-price">{formatPrice(getListPrice(),null,1):h}</span></li> </div> This is good but basically as soon as someone hits "Register" and enter an email address (fake or not) and a password he/she is logged in. What statement could we add to have prices showing up ONLY when registrant as been approved, for example, as a wholesaler after a "pending" request? Thank you for your help. Philippe Setting up XCart 5.2.6 |
Re: Hide the price on the storefront
Hello Philippe,
What does "approved as a customer" mean? How do you approve them? Basically, you should decorate \XLite\Controller\AController class, add your method that does the check and use it instead of isLogged() in your template. |
Re: Hide the price on the storefront
Hello Alex,
When products are marked with a specific membership they are not showing. When products are not marked with a membership class they do show up with prices as soon as someone register, meaning someone entering any kind of information for email and password. The ideal would be for a customer to register and pending admin change of membership prices do not show up. I failed to find: \XLite\Controller\AController class. Do you mean Classes\XLite\Controller\AController.php? and change: /** * Check if current user is logged in * * @return boolean */ public function isLogged() { if (is_null(static::$isLogged)) { static::$isLogged = \XLite\Core\Auth::getInstance()->isLogged(); } return static::$isLogged; } How do I change it to reflect: Check if Wholesaler is logged in, after admin has changed the user status to "Wholesaler"? Philippe Setting up 5.2.6 |
Re: Hide the price on the storefront
Okay, Phillipe has engaged me to provide this solution, Thanks.
This is how you can hide prices to anyone that is not a member. First of all you need to make this modification in your custom module. Here is my tutorial on doing so if you have not done so already: http://kb.x-cart.com/display/XDD/Creating+a+module+for+X-Cart+5%3A+Tutorial+by+Mike+White The you need to decorate the class Alex referenced above: classes/XLite/Controller/AController.php This is demonstrated well here: http://kb.x-cart.com/display/XDD/Step+3+-+applying+logic+changes Inside your new decorator class place this method: Code:
/** Now override the templates in your custom skin module. If you need help here is another tutorial on custom skins: http://xcartguru.com/tutorials/x-cart-5-tutorials/building-a-custom-skin-in-x-cart-5/ Override skins/default/en/product/details/parts/common.price.tpl with this: Code:
{if:isMember()} Override skins/default/en/items_list/product/parts/common.product-price.tpl with this: Code:
{if:isMember()} |
Re: Hide the price on the storefront
hi, is there an update for 5.3? using .twig now.
This link: http://kb.x-cart.com/display/XDD/Creating+a+module+for+X-Cart+5%3A+Tutorial+by+Mike+White no longer exists now. I cannot see where you can decorate the class. Any help appreciated. |
Re: Hide the price on the storefront
Quote:
Here is the new link. https://devs.x-cart.com/webinars_and_video_tutorials/creating_a_module_for_x-cart_5_tutorial_by_mike_white.html It is still referring to X-Cart 5.1 in that tutorial, but we have a huge bunch of new how-to articles on 5.3.x covered in our new developers docs! Check here. https://devs.x-cart.com/getting_started/ |
Re: Hide the price on the storefront
Thanks but there's no continuity here between the versions so it's impossible to follow. We're now into twigs.
|
Re: Hide the price on the storefront
Quote:
Almost all articles that are written by X-Cart staff are adapted to 5.3 now. |
Re: Hide the price on the storefront
Have followed everything but it is hanging when I deploy the store.
Deploying store [step 6 of 13], please wait... Run the "Doctrine_Plugin_ProxyGenerator" plugin... Run the "Doctrine_Plugin_UpdateModules" plugin... [0.11sec, 1.5MB (601kB)] |
Re: Hide the price on the storefront
Quote:
Is there anything in the error log? If there is nothing, I would advise to drop X-Cart cache (var/run and var/datacache) and then regenerate the cache manually through PHP-CLI while logged in to the server console over SSH, like this. Code:
for asdasd in {1..13}; do php admin.php; done; Most likely it will throw an error you are looking for. |
All times are GMT -8. The time now is 08:49 AM. |
Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.