Waiting for author
Overview of the issue
When viewing orders associated with WooCommerce Subscriptions while WPML is active, users may encounter a fatal PHP error:
PHP Fatal error: Uncaught TypeError: Illegal offset type in isset or empty in .../wp-content/plugins/sitepress-multilingual-cms/classes/core-abstract-classes/class-wpml-element-translation.php:259
Workaround
Please, make sure of having a full backup of your site before proceeding.
- Open …/wp-content/plugins/woocommerce-subscriptions/vendor/woocommerce/subscriptions-core/includes/wcs-helper-functions.php file.
- Change from:
123456789
function
wcs_get_edit_post_link(
$post_id
) {
$object
= wc_get_order(
$post_id
);
// works for both WC Order and WC Subscription objects.
if
( !
$object
|| ! in_array(
$object
->get_type(),
array
(
'shop_order'
,
'shop_subscription'
), true ) ) {
return
;
}
return
apply_filters(
'get_edit_post_link'
,
$object
->get_edit_order_url(),
$post_id
,
''
);
}
- To:
123456789101112
function
wcs_get_edit_post_link(
$post_id
) {
if
(
$post_id
instanceof
(
'WC_Subscription'
)){
$post_id
=
$post_id
->id;
}
$object
= wc_get_order(
$post_id
);
// works for both WC Order and WC Subscription objects.
if
( !
$object
|| ! in_array(
$object
->get_type(),
array
(
'shop_order'
,
'shop_subscription'
), true ) ) {
return
;
}
return
apply_filters(
'get_edit_post_link'
,
$object
->get_edit_order_url(),
$post_id
,
''
);
}