希望你能帮忙.我遇到了一个奇怪的问题,不知道如何解决它.我熟悉调用动作,但在调用空的标准woo挂钩时遇到了致命错误.

我正在"我的帐户"的地址部分拨打100.我为"Company Name"创建了一个字段,该字段填充得很好.但如果我更改它并运行操作来添加此字段,我会得到以下错误: "Fatal error: Uncaught ArgumentCountError: Too few arguments to function save_address_changes(), 2 passed in"

代码如下:

add_action('woocommerce_customer_save_address', 'save_address_changes', 10, 3);

function save_address_changes($user_id, $load_address, $address_type) {
    // Check if the address type is billing or shipping
    if ($address_type === 'billing') {
        // Handle address changes here
    }
}

我开始取出我正在做的事情,并最终取出了该功能所做的所有事情.所以它不做任何事情.但仍然存在错误.我看到错误表明它只得到了3个参数中的2个.我认为列出的这些参数是由woo和更大的动作定义的全局参数.我不认为这些是我应该设定的事情.这是真的吗?

您有什么 idea 如何解决这个问题并弄清楚发生了什么吗?似乎当激活保存地址挂钩时,它会执行一系列其他事情,然后用已知参数运行我的片段,因为这些似乎是这个挂钩中应该包含的内容的标准.

推荐答案

woocommerce_customer_save_address动作挂钩has only 2 arguments($user_id$address_type),因此要解决此问题,请使用以下内容:

add_action( 'woocommerce_customer_save_address', 'customer_save_address_changes', 10, 2 );
function customer_save_address_changes( $user_id, $address_type ) {
    // Check if the address type is billing or shipping
    if ($address_type === 'billing') {
        // Handle address changes here
    }
}

它现在应该起作用了.

Php相关问答推荐

无法使用PHP DomDocument找到IMG元素

try 修改这个PHP代码如果语句在WordPress""

自定义WooCommerce查询字符串仅显示前3个产品

Mysqli_stmt::Execute():结果字段元数据中存在过早的EOF

根据在WooCommerce购物车和 checkout 中 Select 的送货方式显示快捷代码内容

在Google云存储对象上从PHP设置缓存控制TTL会更改错误的元数据

PHP:PHP手册-Manual

通过注册在Laravel中分配角色

允许在WooCommerce管理员优惠券列表中显示自定义优惠券类型

如何在laravel中使用script type= text/html/script

带Redhat php curl的http_code 0

基于自定义域的每个购物车项目的WooCommerce定制数量输入步骤

htaccess重命名index.php以在URL中显示为SEO的友好名称

在php中,方法之间的属性链接是如何工作的

Mockery在模拟Redis连接时抛出错误:Mockery\Exception\BadMethodCallException

主机中未检索用户表数据

使用 Composer 找不到 Google APIClient 类

循环中未序列化数组显示的问题

Symfony 自定义注销

如何将在同一台服务器上运行的 2 个 PHP 应用程序与使用公共会话分开