WordPress / WooCommerce 变量未在函数 / 挂钩中传递

WordPress / WlooCommerce Variable Not Being Passwed Through Within A Function / Hook

我在 woocommerce 上有 post 元数据,用于捕获使用 PHP.

显示简码时使用的 ID

如您所见

// Add Preview Button To Product Pages
add_action( 'woocommerce_simple_add_to_cart', 'add_preview_button_to_mag_issues' );
function add_preview_button_to_mag_issues() {
    if (has_term( 'Magazine Issues', 'product_cat' )){
        $fb_prev_issue_sc_var = get_post_meta ($post->ID, 'fb_prev_issue_shortcode', true); // Store Shortcode To Display Preview Flipbook
        //echo do_shortcode('[real3dflipbook id="2"]');
        echo do_shortcode('[real3dflipbook id="' . $fb_prev_issue_sc_var . '"]'); // Print Shortcode To Display Preview Flipbook
        echo '<a class="real3dflipbook-lightbox button alt">Preview Issue</a>'; // Print Button To Open Lightbox
    }
}

变量 $fb_prev_issue_sc_var 由于某种原因没有获取内容。我之前在我的代码中使用过同样的方法来填充变量,它工作正常,它用于显示相同的短代码......但是它不在 "hook" 或函数中。

这是我保存变量的方式

// Preview Issue Shortcode ID
$woocommerce_fb_prev_issue_shortcode = $_POST['fb_prev_issue_shortcode'];
if( !empty( $woocommerce_fb_prev_issue_shortcode ) )
update_post_meta( $post_id, 'fb_prev_issue_shortcode', esc_attr( $woocommerce_fb_prev_issue_shortcode ) );

想不通这个...

提前致谢!

编辑 请注意,这两行代码都包含在子主题 functions.php 文件

您必须使变量 $post 成为全局变量,因为您正在尝试读取未定义对象的属性 ID。

在这种情况下启用 WordPress 调试会有所帮助。