使用 Wordpress 内置副本在 Woocommerce 中复制产品 URL
Duplicate product in Woocommerce using Wordpress built-in duplicate URL
我正在使用 Woocommerce 产品页面中提供的 link 生成一个 URL,它应该复制给定的产品。 wpnonce 已创建,我也在这样做。我可以看到一个随机数被传递给 url,但我仍然收到错误:
您关注的 link 已过期。
请重试。
我试过将“动作”名称换成:
woocommerce_duplicate_product
复制
duplicate_product
product_duplicate
我开始相信问题不在于操作名称。问题一定来自其他地方。在网上搜索答案,挖掘 Woocommerce 文献,查看 Wordpress PHP 文件,但据我所知,这应该有效。
这是我使用的代码:
$nonce_duplicate_action = wp_create_nonce('woocommerce_product_duplicate');
$duplicate_url = "https://www.mywebsite.com/store/wp-admin/edit.php?post_type=product&action=duplicate_product&post=47447&_wpnonce=" . $nonce_duplicate_action;
示例取自 WC 产品副本 class WC_Admin_Duplicate_Product
$post = get_post(47447);
if ($post instanceof WP_Post) {
$duplicate_url = '<a href="' . wp_nonce_url( admin_url( 'edit.php?post_type=product&action=duplicate_product&post=' . $post->ID ), 'woocommerce-duplicate-product_' . $post->ID ) . '" aria-label="' . esc_attr__( 'Make a duplicate from this product', 'woocommerce' )
. '" rel="permalink">' . esc_html__( 'Duplicate', 'woocommerce' ) . '</a>';
}
我正在使用 Woocommerce 产品页面中提供的 link 生成一个 URL,它应该复制给定的产品。 wpnonce 已创建,我也在这样做。我可以看到一个随机数被传递给 url,但我仍然收到错误:
您关注的 link 已过期。 请重试。
我试过将“动作”名称换成: woocommerce_duplicate_product 复制 duplicate_product product_duplicate
我开始相信问题不在于操作名称。问题一定来自其他地方。在网上搜索答案,挖掘 Woocommerce 文献,查看 Wordpress PHP 文件,但据我所知,这应该有效。
这是我使用的代码:
$nonce_duplicate_action = wp_create_nonce('woocommerce_product_duplicate');
$duplicate_url = "https://www.mywebsite.com/store/wp-admin/edit.php?post_type=product&action=duplicate_product&post=47447&_wpnonce=" . $nonce_duplicate_action;
示例取自 WC 产品副本 class WC_Admin_Duplicate_Product
$post = get_post(47447);
if ($post instanceof WP_Post) {
$duplicate_url = '<a href="' . wp_nonce_url( admin_url( 'edit.php?post_type=product&action=duplicate_product&post=' . $post->ID ), 'woocommerce-duplicate-product_' . $post->ID ) . '" aria-label="' . esc_attr__( 'Make a duplicate from this product', 'woocommerce' )
. '" rel="permalink">' . esc_html__( 'Duplicate', 'woocommerce' ) . '</a>';
}