Polylang integration
-
Hi, From what I’ve checked there is no polylang integration.
the values of what already has been donated are not equal in all languages.
How can I solve this?The page I need help with: [log in to see the link]
-
The progress bar shows the sales for a single product. If the product is copied and translated into different languages, they are different products internally, because the ID changes. With the next update, I’m adding the feature to insert a collective progress bar for multiple products via shortcode. Would that solve your problem?
@flinnn Yes its solve it, but I need a solution for now, you have any idea what can I do?
If you know some php, it shouldn’t be that hard to customize the calculation. You just have to change the product meta entry with the key “wcdp_total_revenue”.
Have a look at the following file: https://github.com/jonas-hoebenreich/wc-donation-platform/blob/main/includes/class-wcdp-progress.php
All the magic happens in the updateTotalRevenueOfProduct() function. You just have to make sure that revenue is overwritten to the value you want./** * Calculate and update the total revenue of a product * @param $productid */ private function updateTotalRevenueOfProduct($productid) { global $wpdb; $query ="SELECT SUM(ltoim.meta_value) as revenue FROM {$wpdb->prefix}woocommerce_order_itemmeta wcoim LEFT JOIN {$wpdb->prefix}woocommerce_order_items oi ON wcoim.order_item_id = oi.order_item_id LEFT JOIN {$wpdb->prefix}posts wpposts ON order_id = wpposts.ID LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta ltoim ON ltoim.order_item_id = oi.order_item_id AND ltoim.meta_key = '_line_total' WHERE wcoim.meta_key = '_product_id' AND wcoim.meta_value = %d AND wpposts.post_status = 'wc-completed';"; $translations = pll_get_post_translations($productid); foreach($translations as $item){ $result = $wpdb->get_row($wpdb->prepare( $query, $item ), ARRAY_A); if (!is_null($result) && isset($result['revenue'])) { update_post_meta( $item, 'wcdp_total_revenue', array('revenue' => (float) $result['revenue'], 'time' => time())); } else { update_post_meta( $item, 'wcdp_total_revenue', array('revenue' => 0, 'time' => time())); } } }
You have any idea why now I get the value on other language and not the default language?
First I had on Hebrew language the value, now it changed to English.
Thank you for your help.pll_get_post_translations
returns array of ids of the post/product translation.
So I have tried to run it withforeach
loop to display equal values for all translations IDS but no success there.You have to add up the individual donation revenues.
Therefore, create two loops, in the first you add the values together, in the second you save the calculated value for all child products.@flinnn I’m trying to do this, but didn’t quite understand how to.
when is your update scheduled? it’s really important to my client.I will hopefully finish the update today, I think it should be just a few more days until it is fully tested and released.
@flinnn You’re great! thank you alot, really appreciate your job here.
Hi, I have adapted the shortcode for you. With the latest version, you can specify additional products via the parameter addids, the revenue will then be added: https://wcdp.jonh.eu/documentation/usage/progress-bar-shortcode/
At the same time, I have now extended the plugin with a Polylang integration. This means that the revenue for translated products is now automatically included in the calculation.@flinnn Amazing job, thank you.
- The topic ‘Polylang integration’ is closed to new replies.