Woo-commerce编辑帐户短代码根本不起作用

时间:2016-05-10 11:28:14

标签: php wordpress woocommerce shortcode account

我们使用的当前Woocommerce版本是2.5.5我在编辑帐户页面中使用以下短代码。

[woocommerce_edit_account]

但是,我的页面显示主页而不是编辑帐户页面。现在有些新东西吗?

3 个答案:

答案 0 :(得分:1)

它们不再起作用,它们仅适用于Woocommerce 2.1或更低版本。它们已被端点替换,因此您需要执行以下操作:

$my_account_link = get_permalink( get_option('woocommerce_myaccount_page_id') );
$edit_acount_link = $my_account_link . '/edit-account';

如果第一行太长,请尝试使用:

$my_account_link = get_bloginfo('url'). '/my-account';

您可以在以下位置阅读有关端点的更多信息:https://docs.woothemes.com/document/woocommerce-endpoints-2-1/

答案 1 :(得分:1)

您可以使用原生WooCommerce功能wc_customer_edit_account_url()
(它也用于woocommerce my_account.php模板)

正如Skatox提到的那样,[woocommerce_edit_account]不再有效。

您可以将其与自定义自关闭短代码一起使用:

// Paste this in the function.php file of your active child theme or theme.
function wc_customer_edit_account_shortcode( $atts ) {

    // Attributes
    $atts = shortcode_atts(
        array(
            'text' => '',
        ),
    );

    return '<a class="customer-edit-account" href="'.wc_customer_edit_account().'">'.$text.'</a>';

}
add_shortcode( 'wc_customer_edit_account', 'wc_customer_edit_account_shortcode' );

使用:[wc_customer_edit_account text="Editing my account details" /]

答案 2 :(得分:0)

在我的网站(使用WooCommerce 3.6.5)上,这是对我有用的代码:

// Paste this in the function.php file of your active child theme or theme.
function wc_customer_edit_account_shortcode( $atts ) {

    // Attributes
    extract( shortcode_atts( array(
                'text' => 'Edit Account' ), $atts ) );

    return '<a class="customer-edit-account" href="'.wc_customer_edit_account_url().'">'.$text.'</a>';

}
add_shortcode( 'wc_customer_edit_account', 'wc_customer_edit_account_shortcode' );

我没有编辑function.php甚至没有添加子主题,而是使用Snippets插件将其粘贴到了新代码段中。