Open
Reported for: WooCommerce Multilingual & Multicurrency 5.2.0
Overview of the issue
If you buy a product in second languages, you will notice that it is not assignment of a membership. You can observe this specifically in the “Thank you” page that follows the order, where the expected membership details are absent.
Workaround
Please, make sure of having a full backup of your site before proceeding.
- Open the …/wp-content/plugins/woocommerce-memberships/src/class-wc-memberships-membership-plan.php file.
- Look for line 218.
- Replace:
123456789
public
function
get_product_ids() {
if
( null ===
$this
->product_ids ) {
$this
->product_ids = get_post_meta(
$this
->id,
$this
->product_ids_meta, true );
$this
->product_ids =
is_array
(
$this
->product_ids ) ?
array_unique
(
array_map
(
'absint'
,
$this
->product_ids ) ) : [];
}
return
$this
->product_ids;
}
- With:
12345678910
public
function
get_product_ids() {
if
( null ===
$this
->product_ids ) {
$this
->product_ids = get_post_meta(
$this
->id,
$this
->product_ids_meta, true );
$this
->product_ids = apply_filters(
'wc_memberships_rule_object_ids'
,
$this
->product_ids );
$this
->product_ids =
is_array
(
$this
->product_ids ) ?
array_unique
(
array_map
(
'absint'
,
$this
->product_ids ) ) : [];
}
return
$this
->product_ids;
}