我有一个woocommercestore ,我在functions.php中创建了一个函数,如果你以管理员身份登录,它会包含一个按钮到简单产品页面.这个函数工作得很好,按钮显示得很好,无论我指定什么作为href工作.

add_action( 'woocommerce_before_single_product_summary', 'product_visibility_button', 5 );
function product_visibility_button() {

    if ( is_user_logged_in() ) {
        global $product;
        $id = $product->get_id();
        $user = wp_get_current_user();
        if ( in_array( 'administrator', (array) $user->roles ) ) {
            echo '<div>';
            echo '<a href="https://activepieces.myurl.co.uk/api/v1/webhooks/Bf8utHihs67830sOhkq41v?id=" class="button" style="margin:10px">Publish To Facebook</a>';
            echo '</div>';
        }
    }
}

正如你所看到的,这个按钮的目的是为我的ActivePieces实例调用一个webhook,我需要将我正在使用的任何产品的产品ID附加到href url的末尾,在'='之后,这样我就可以将产品ID解析到我创建的流中.

我对php和wooCommerce比较陌生,有没有人可以帮我把它分解一下,这样我就可以边走边学?

我try 过调用各种global和wc_get挂钩,但似乎无法正常工作.

推荐答案

WooCommerce中的每个产品都由一个WC_Product对象表示,您可以使用它的方法来获取product ID.

Add_action(‘WooCommerce_BEFORE_Single_PRODUCT_SUMMARY’,‘PRODUCT_V可见性_BUTTON’,5); 函数PRODUCT_可见性_BUTTON(){

    if ( is_user_logged_in() ) {
        global $product;
        $id = $product->get_id(); 
        $user = wp_get_current_user();
        if ( in_array( 'administrator', (array) $user->roles ) ) {
          
            $href = "https://activepieces.myurl.co.uk/api/v1/webhooks/Bf8utHihs67830sOhkq41v?id=" . $id;

          
            echo '<div>';
            echo '<a href="' . esc_url( $href ) . '" class="button" style="margin:10px">Publish To Facebook</a>';
            echo '</div>';
        }
    }
}

Php相关问答推荐

为WooCommerce中的特定用户角色指定促销价格

当我们使用PHPUnit时,控制台中的--uses param到底起了什么作用以及如何使用?

Laravel通过(扩展FormRequest类)方法验证表单请求

编写WooCommerce多步骤签出

过滤WooCommerce管理员订单列表(+HPOS)中包含其作者产品的订单

致命错误:无法使用简单的php博客重新声明spl_autoload_Register()

WooCommerce:在 checkout 审核单和发票中显示定制产品数据

如何在PHP中出现弃用警告时触发错误?

PHP:为什么递归需要这么长时间

WooCommerce中特定付款方式的变更订单预留库存时间

在WooCommercestore 页面上显示库存产品属性的值

主机中未检索用户表数据

如何限制 woocommerce 中相关产品的标题长度

使用动态地址和动态文件创建zip文件并获取zip文件链接

根据WooCommerce中选定的变体重量更改输入数量步值

为WooCommerce中的Guest用户保存唯一的客户代码到订单中

symfony/notifier + twig/inky-extra 在 dunglas/symfony-docker 中缺少 ext-xsl.

ACF 更新字段功能不更新 WordPress 中的任何数据

使用 PHP 正则表达式从仅包含具有现有顺序的顶级标签的 XML 文档中搜索和创建数组

PHP获取根据辞职日期自动续订的合同终止日期