使用WordPress/WooCommerce类编写脚本?

时间:2018-07-18 作者:ssharp_wp

我想运行各种处理脚本来修改WooCommerce订单数据。目前,我将脚本构建为主题函数中的一个函数。然后将函数附加到一个短代码。然后,我在Wordpress中构建一个只包含该短代码的页面,并将该页面加载到浏览器中以执行脚本。

这似乎令人难以置信地费解,必须有一种“适当”的方式来做到这一点,而不涉及创建页面和在主题中运行内容。

我需要访问像WP\\u Query和WooCommerce Order类这样的东西,但本质上我想拥有完整的Wordpress和WooCommerce类/函数,就像我在页面/短代码中运行时一样。

有没有一种合适的方法可以轻松地引导Wordpress包含的所有内容,而不必一直贯穿主题?

1 个回复
SO网友:Jacob Peattie

有没有一种合适的方法可以轻松地引导Wordpress包含的所有内容,而不必一直贯穿主题?

这是个错误的问题。短代码远远不是从主题或插件运行代码的唯一方法。不过,你已经正确地确定了他们不适合这份工作。我认为您应该寻找一种更好的方法来从主题或插件运行脚本。

在我看来,您有两个主要选项,基本上取决于您希望如何触发脚本。

如果你想的话manually trigger 脚本,然后您应该在管理中创建一个页面,其中包含一个触发脚本的按钮。这方面的基本步骤是:

使用add_menu_page() 将页面添加到某个管理位置action 设置为<?php echo esc_url( admin_url( \'admin-post.php\' ) ); ?> 和一个隐藏的输入name"action"value 作为功能的唯一标识符admin_post_{whatever your action name is} 运行脚本的This tutorial 管理表单上更详细地介绍了该主题。

现在,您将在admin中有一个位置,可以在那里按一个按钮来运行脚本。

如果你想的话automatically trigger 脚本on a schedule, 然后,您应该使用WP Cron来计划脚本函数的运行。这方面的文档是here, 但本质上不是将脚本函数添加到具有add_shortcode(), 使用将函数添加到挂钩add_action(), 然后使用wp_schedule_event() 安排操作在特定时间运行。

您可以使用wp_next_scheduled() 要自动安排脚本在每次运行后再次运行,请执行以下操作:

if ( ! wp_next_scheduled( \'{whatever your hook name is}\' ) ) {
    wp_schedule_event( time(), \'hourly\', \'{whatever your hook name is}\', $args );
}

结束

相关推荐

当本地服务器从wp-config.php读取`WP_HOME`时,远程服务器不读取

我有一个wp配置。包含以下变量的php文件:define( \'WP_HOME\', $_ENV[\'WP_HOME\'] ); define( \'WP_SITEURL\', $_ENV[\'WP_SITEURL\'] ); 在我当前的设置中,这将使用dotenv从加载值。服务器上的env文件。但出于这个问题的目的,我也尝试在这两个地方对域进行硬编码。在我的本地服务器上,URL为https://sitename.test. 它在/wp admin/options-general下正常工