Woocommerce price to satsWoocommerce price to sats
Series of php snippets to transform the price of your woocommerce shop in bitcoin or satoshis.
Github repo
Notice, these snippets only change the price to its equivalent in btc/sats, if you want to receive payments in your woocommerce shop you must install a payment processor like Btcpayserver.
Find all the code in the github repo
The operation of this snippet is based on a series of filters that you must add at the end of the functions.php file of your theme.
These snippets make a call to the oracle to convert the price of our products, this oracle is https://blockchain.info/tobtc and you can find it in the code like this https://blockchain.info/tobtc?currency=$woo_currency&value=$total
Basically we pass the currency set in our shop ($woo_currency) and then the total price ($total), this way we receive the response with the price equivalence in sats and then we show in the front end adding filters, for example add_filter( 'woocommerce_get_price_html', 'woo_product_price_2sats');
If you want to configure to display prices in btc rather than satoshis just change the value of the $data variable within each filter from $data = number_format(ltrim(curl_exec($ch), "0.")); to $data = curl_exec($ch);
(Bonus) I have configured my snippet to show an svg image with the satoshi symbol before the price in this way:"<img class='sat-favicon' src='/wordpress/wp-content/uploads/2022/10/Satoshi-regular-ellipse.svg' width=40px;/><span class='btc-price'>{$data} Sats </span>";
Feel free to play around with this snippet and share your experience!
Encouragement to all who work and share to facilitate adoption!🔥🔥
From a pleb to the plebs!
Might use this in a SatSale PR!
We have a woocommerce plugin and this addition would be great
No way man! it would be awesome if this little piece of code contributed something to the Satsale project!!! I love the project and i was running a test instance on my node. Do you do the PR or do I do it?
thank you! ill be checking this one out!
@gzoo encountered a couple issues:
i'm running:
wordpress 6.0.2
woocommerce 7.0.0
btcpay for woocommerce v2 1.1.1
storefront theme by woocommerce
Hi tanaris! thanks for your feedback :)
woo_product_price_2satsI format the price in$product_p_formatedwithrtrim($total, ".0");to avoid having zeros that I don't need. You can solve it in a very simple way, either adding two decimals in the woocommerce price settings (woocommerce>settings) or commenting that line of code and in the fiat price printprint "<span class='fiat-price'> {$product_p_formated} €</span>";replace$product_p_formatedwith$total.function woo_product_price_2sats() { global $woo_currency; $all_meta_data = get_post_meta(get_the_ID()); $total=$all_meta_data['_regular_price'][0]; $price_oracle_url = "https://blockchain.info/tobtc?currency=$woo_currency&value=$total"; $ch = curl_init($price_oracle_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); $data = number_format(ltrim(curl_exec($ch), "0.")); $product_p_formated=rtrim($total, ".0"); curl_close($ch); print "<span class='btc-price'>{$data} Sats </span>"; print "<span class='fiat-price'> {$product_p_formated} €</span>"; }good deal gzoo. appreciate you taking the time to respond and layout a solution here. ill look forward to your revision with cart/minicart fixes. thanks again!
Excellent work with these snippets! I will install them on my WooCommerce store to test the display of prices in satoshis.
I have a question: is there any snippet or integration that goes beyond displaying prices, enabling direct conversion of payments in fiat and allowing automatic receipt in satoshis? This would be an ideal solution for those looking to further simplify Bitcoin adoption. Thank you in advance for sharing and for your dedication to making Bitcoin integration in e-commerce easier!
A little credit for writing the original code? 🤷🏻♂️ #79553
Ok, I hope I didn't bother you.
All credits to the code in the snippet that makes the request to blockchain info and returns the btc amount for @gd
Not at all, just good form to give reference